Ich kann nicht herausfinden, warum das von getProjection () zurückgegebene Objekt nicht definiert ist. Hier ist mein Code:
%Vor%Mein Fehler ist: Die Methode 'fromLatLngToContainerPixel' von undefined
kann nicht aufgerufen werdenDer Grund dafür ist, dass das Projektionsobjekt erstellt wird, nachdem die Karte nach dem Verschieben / Zoomen leer ist. Eine bessere Lösung besteht also darin, auf das idle -Ereignis des google.maps.Map -Objekts zu hören und einen Verweis auf die Projektion dort zu erhalten:
%Vor%Ich habe herausgefunden, was los ist. Obwohl es immer noch nicht klar ist, warum dies passiert, weiß ich, dass ich die Variable "overlay" direkt nach der Instanziierung meiner Google Map (HAR.map) instanziieren musste. Also habe ich dieses Code-Snippet praktisch in meine HAR-Klasse verschoben und verwende jetzt:
%Vor%So, jetzt, jedes Mal, wenn ich eine Karte über meine Klasse "HAR" erstellen, habe ich auch ein paralleles OverlayView-Objekt innerhalb meiner Klasse.
Der Fehler könnte mit dem Verlust des Bereichs meines Klassenobjekts verbunden sein, aber ich denke, es wurde mehr vom Kartenereignis "projection_changed" nicht ausgelöst. Ich habe einen Hinweis von der Karten-API-Dokumentation für die Kartenklasse unter der Methode getProjection ():
erhaltenWenn das ähnliche Problem auftritt, vergewissern Sie sich, dass Sie Ihr overlayVIEW.setMAP (YOUR_MAP_OBJECT) genau nach dem Instanziieren des Kartenobjekts zuweisen.
Tags und Links google-maps google-maps-api-3