2016-04-08 3 views
-2

Im Hinblick auf die spärliche Dokumentation unter: MapsEventListener object specificationGoogle Maps API v3 addDomListener-Methode Fragen?

Wenn ich folgendes verwenden:

google.maps.addDomListener(div, 'click', function (evt) { alert(evt.latLng.toString();) }); 

ich einen Debugger Fehler, der besagt es keine solche Eigenschaft „latLng“ ist.

Doch die „Mouseevent-Objekt-Spezifikation“ im gleichen Google-Dokument heißt es darüber:

Eigenschaften latLng
Typ: LatLng Die Breite/Länge, die unter dem Cursor war, als das Ereignis eintrat.

Also wird das Objekt durch das 'click'-Ereignis übergeben NICHT ein MouseEvent-Objekt wie in der Dokumentation beschrieben ??? (Es scheint nicht) und wenn nicht, was genau ist das Objekt (und seine Eigenschaften, etc.) und wo ist das *** dokumentiert?

Antwort

3

Sie können das latLng aus dem Klickereignis div nicht abrufen. Ihr Code funktioniert einwandfrei, wenn Sie den Ereignis-Listener an map anstelle von div anfügten.

div Klicken Sie auf wird ein normales DOM-Ereignis ausgelöst und daher wird es keine latLng damit verbunden sein.

Verwenden Sie den folgenden latLng aus map ‚s Click-Ereignis zu erhalten:

map.addListener('click', function(evt) { 
    console.log(evt.latLng); 
    }); 
+0

Nachdem das Objekt im Debugger untersuchen, so geht die google.maps.addDomListener Methode ein PointerEvent Objekt an den Handler - was natürlich enthält nicht die Eigenschaft latLng (natürlich wird dies in der Dokumentation NICHT erwähnt). Außerdem muss der Listener an das div angehängt werden, da es Teil einer overlayView ist (die ich anfangs nicht erwähnt habe, weil ich gerade versucht habe herauszufinden, was addDomListener passiert). Wie auch immer, danke für die Antwort. – bdcoder