Ich möchte wissen, wann ein Google Maps-Ereignis zoom_changed speziell durch eine Benutzerinteraktion mit den +/- Zoom-Schaltflächen ausgelöst wird. Wenn ich einen allgemeinen Ereignis-Listener für zoom_changed verwende, kann ich nicht feststellen, ob es sich um ein benutzergeneriertes Ereignis oder um eine Zoomänderung handelt, die durch etwas wie fitBounds() verursacht wird. Auf der Suche nach dem besten Weg, dies zu tun.Wie kann man in Google Maps nach benutzergenerierten Zooms suchen?
Ich habe folgende Dinge ausprobiert, von denen keine zu funktionieren scheint:
1) für Ereignisinformationen Sah auf zoom_changed. Es scheint keine zu geben.
2) Fügen Sie Listener für MouseOver und MouseOut hinzu, mit denen ich ein Flag setzen kann, um zu sehen, ob sich der Benutzer in den MapBounds befindet, und das Flag auf zoom_changed zu überprüfen. Dies funktioniert nicht, da die Karte die Zoom-Schaltflächen nicht als Teil des Kartenrahmens betrachtet (mit anderen Worten, wenn Sie den Mauszeiger über den Zoom-Schaltflächen bewegen, wird das mouseout-Ereignis ausgelöst).
3) Fügen Sie den Zoomtasten einen normalen (nicht gMap) Listener hinzu. Ich kann jedoch keinen definitiven CSS-Selektor finden, mit dem ich nur die Tasten packen kann.
4) Suche nach einer Funktion in der gMaps-API, die mich etwas wie getZoomElements() tun lassen würde, und dann könnte ich Listener damit einstellen.
Die komische Sache ist, dass ich eindeutig tun kann, was ich will, wenn ich ein kundenspezifisches Steuerelement der Karte hinzufüge. Es scheint sehr merkwürdig, dass sie mich zwingen würden, das zu tun, anstatt einen Haken in die Standardzoomsteuerelemente zu haben.
Bedenken Sie auch das Mausrad - es gibt mehr als eine Möglichkeit für einen Benutzer, den Zoom zu manipulieren. – josh3736
Vergessen Sie nicht Touch-Ereignisse und Tastatur. –