2015-09-01 1 views
5

Ich habe eine Kartenkomponente für eine Webanwendung mit Google Maps, offenen Layern und dem Dojo-Toolkit erstellt. Es hat eine Google Map geladen und Datenpunkte geplottet. Bis heute Morgen funktionierte alles gut, aber plötzlich hörte die Karte auf zu laden. Es gibt keine JavaScript-Fehler, Open-Layer und Google initialisieren noch, die Datenpunkte zeichnen immer noch an ihren jeweiligen Orten, aber die Karte wird nicht geladen. Im Folgenden sind die Ressourcen, die ich benutze:Google Maps API ändern?

<script src="//openlayers.org/api/OpenLayers.js"></script> 
<script src="//maps.google.com/maps/api/js?v=3&libraries=places&sensor=false"></script> 

Ich habe gerade versucht, das ‚Hallo Welt‘ Beispiel Google (gefunden unten) und bemerkte, sieht vor, dass es funktioniert.

https://developers.google.com/maps/documentation/javascript/tutorial 

Ich bemerkte, dass Beispiel erfordert die Verwendung eines API-Schlüssels. Ich habe versucht, meinen API-Schlüssel in die oben verwendete Ressource zu setzen, aber ohne Erfolg. Ich habe auch versucht, die Ressource zu kopieren, die sie in dem Beispiel verwenden und die fehlgeschlagen ist, da es Fehler in offenen Layern verursachte.

Hat Google entschieden, die Funktionalität hier zu verwerfen, und ich muss diese Komponente neu erstellen? Gibt es etwas, das mir fehlt?

HINWEIS:

Ich habe gelöst vorübergehend mein Problem in der Produktion von von Google Maps Schaltstraßenkarten zu öffnen. Es kann hier https://www.beaconsinspace.com/map gefunden werden. Dies zeigt auch, dass das Problem darin liegt, die Karte zu laden, und nicht auf etwas anderes.

Antwort

3

Zurückkehren zu der Version 3.20 für mich gearbeitet:

<script src="//maps.google.com/maps/api/js?v=3.20"></script> 

Kredit geht an @ geocodezip, um mich auf den richtigen Weg zu bringen.

+0

Keine Ahnung, aber das ist nicht das erste Mal, dass ich Probleme mit OpenLayers und neuen Versionen von Google Maps sehe, und das macht mich weniger zuversichtlich, OpenLayers zu verwenden, um ehrlich zu sein (zumindest an einem Frontend). – Benjamin

3

Sieht aus wie announced in the notify group v.exp ist jetzt v3.22, was bedeuten würde, dass die Release-Version v3.21 und die eingefrorene Version v3.20 ist.

Es scheint, als ob jedes Mal, wenn eine neue Version der API ausläuft, temporäre Probleme beim Laden der Kacheln auftreten. Haben Sie versucht, eine vollständige Aktualisierung durchzuführen (Löschen des Browsercaches)? Es ist möglich, dass die Probleme auf das Zwischenspeichern von Teilen der API zurückzuführen sind.

Sie verwenden nicht die currently documented URL for the API, (maps.google.com/maps/api/js vs maps.googleapis.com/maps/api/js) die möglicherweise auch etwas damit zu tun haben.

<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initMap"> 
</script> 

(nicht, dass ich mit den async defer und den callback=... in diesem Beispiel zustimmen).

+1

Ich hatte das gleiche Problem wie John, und ich bemerkte, dass 3,21 ist die Einführung der BC-Pause. '? v = 3.20' funktioniert für mich. – Benjamin

+0

Das löste das Problem für mich auch @Benjamin –

+0

@Benjamin bitte geben Sie Ihre Antwort, damit ich es akzeptieren kann. –

4

Dank der Antwort von @geocodezip und dem Kommentar von @benjamin habe ich die Lösung gefunden.

Was passiert ist, ist ein Google API-Update (wie in @geocodezip Antwort beschrieben). Die Lösung war für mich zu api Version 3.20 angeben:

<script src="//maps.google.com/maps/api/js?v=3.20&sensor=false"></script> 

--ODER--

<script src="//maps.googleapis.com/maps/api/js?v=3.20&sensor=false"></script> 
0

Das Problem ist das Ergebnis eines Fehlers in OpenLayers.

https://github.com/openlayers/openlayers/issues/1450

Aus durch die Ausgabe zu lesen, es sieht aus wie es jetzt eine Lösung hat. Hör zu.

Beachten Sie, dass das Google Maps API v3.20 in etwa drei Monaten verschwindet.