I am working on an AIR Android application and I needed to implement Maps in it. After looking around, I decided to use the Google Maps API for Javascript using the StageWebView class. When I run the project , I get this error:
InvalidValueError: initMap is not a function
at https://maps.googleapis.com/maps/api/js? key=XXXXXXXXXX%20%20%20%20%20%20%20%20&libraries=visualization&callback=initMap : 87
at https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXX%20%20%20%20%20%20%20%20&libraries=visualization&callback=initMap : 123
at https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXX%20%20%20%20%20%20%20%20&libraries=visualization&callback=initMap : 21
at https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXX%20%20%20%20%20%20%20%20&libraries=visualization&callback=initMap : 123
Here is the HTML:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
html, body { height: 100%; margin: 0; padding: 0; }
#map { height: 100%; }
</style>
</head>
<body>
<div id="map"> </div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&libraries=visualization&callback=initMap">
</script>
<script src="map.js"> </script>
</body>
</html>
THE JS:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 0, lng: 0},
zoom: .3,
styles: [{
featureType: 'poi',
stylers: [{ visibility: 'off' }] // Turn off points of interest.
}, {
featureType: 'transit.station',
stylers: [{ visibility: 'off' }] // Turn off bus stations, train stations, etc.
}],
disableDoubleClickZoom: true
});
map.addListener('click', function(e) {
var marker = new google.maps.Marker({
position: {lat: e.latLng.lat(), lng: e.latLng.lng()},
map: map
});
console.log(e.latLng.lat(), e.latLng.lng());
});
}
The AS3:
var webView:StageWebView;
var file:File = File.applicationDirectory.resolvePath("gmaps/gmaps.html");
var mapURL:String = file.nativePath;
webView = new StageWebView();
webView.stage = stage;
webView.viewPort = new Rectange(0, 0, stage.stageWidth, stage.stageHeight);
webView.loadURL(mapURL);
Note: Running the gmaps.html file in chrome works perfectly.
So, what is the problem? I can't really tell as I have no experience wih JS/HTML. I did try to google but that too got me nowhere. Any help is greatly appreciated
If you try to call map.js before the script async balise.
It'll work
Thanks.