2015-09-21 19 views
21

Ich habe dieses Problem im ganzen Internet gesucht und keiner von ihnen scheint mir eine Lösung zu geben. Ich habe ein einfaches Skript, um nur die Karte von Südafrika anzuzeigen.Google Maps API: TypeError: a ist undefined

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1" /> 
<title>Map Test</title> 
<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<style> 
#map-canvas { 
    height: 300px; 
    width: 980px; 
    margin: 0; 
    padding: 0; 
    margin-top: 10px; 
} 
</style> 
</head> 
<body> 
<div id="map-canvas" class="map_canvas"></div> 
<script type="text/javascript"> 
    function initialize() 
    { 
     var mapOptions = { 
      center: new google.maps.LatLng(-29.09958,26.18434), 
      zoom: 5, 
      mapTypeControlOptions: { 
       position: google.maps.ControlPosition.TOP_LEFT 
      } 
     }; 
     map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</body> 
</html> 

Aber ich bekomme immer wieder den gleichen Fehler. Ich habe es sogar auf einem anderen Server versucht.

enter image description here

Bitte helfen

+0

Ich konnte dieses Problem nicht mit Chrome 44 ~ 45 replizieren. Ich habe sogar Firefox ausprobiert und es gibt keinen Fehler. –

+0

@KimHonoridez, das Problem scheint Chrome nicht zu beeinflussen. Der Fehler ist in Firefox 41.0.1 intermittierend. –

Antwort

46

ich diesen Fehler auch oft in den letzten Tagen gesehen habe, scheint es ein Problem mit der experimentellen API-Version.

Laden Sie die Release-Version statt (im Grunde sollten Sie immer die Release-Version in Produktion laden)

<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true&v=3"></script> 
+0

Vielen Dank, du änderst meinen Tag !!!! – Siick

+2

Ich bin überrascht, dass Google die experimentelle (dh. Unstable) Version standardmäßig anbietet. Dies ist jedoch häufig der Fall: "Wenn Sie keine Version explizit angeben, erhalten Sie standardmäßig die Testversion. Google Maps API for Work-Kunden, die eine Client-ID angeben, erhalten standardmäßig die Release-Version." (Von https://developers.google.com/maps/documentation/javascript/versions) –

+0

Die Antwort wird die neueste "Version" Version der API v3 laden. Für einige Anwendungen kann es sinnvoller sein, eine bestimmte Version anzufordern (z. B. 3.21). Weitere Informationen finden Sie in den Google Best Practices: https://developers.google.com/maps/documentation/javascript/versions#best-practices –

1

Google Maps gestartet Fehler durch, wenn das Skript geladen und auf Berührungsereignisse. Ich benutze es für eine Cordova-Anwendung auf Android und iOS. enter image description here

Dies sind die Fehler, die ich bekomme, aber das Ändern der Ladeversion hat es nicht gelöst.

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MYKEY&v=3.21&libraries=geometry,places"></script> 
+0

Ich habe gerade festgestellt, dass ich GMaps asynchron geladen habe, als das Gerät online ging, und da hatte ich die falsche URL. Hier gehts, mein Samstag ist in mir dumm geworden. – Daniela

+0

Gute Arbeit bei der Lösung und danke für die Veröffentlichung Ihrer Ergebnisse. Immer gut, anderen zu helfen –

1

Version 3.30+ ist von diesem Problem betroffen, wenn es eine globale var Map genannt wird.

ex:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOURKEYHERE&v=3&callback=init" async defer></script> 
<script type="text/javascript"> 
    function init() { 
     Map.go(); 
    } 
    var Map = { 
     go: function() { 
      console.log("start engine"); 
     } 
    }; 
</script> 

Wir haben diesen Fehler:

TypeError: a.prototype is undefined

umbenennen window.Map dann fein alles geht.