Ich verwende Google Maps v3 und habe eine Karte auf meiner Seite platziert. Der Benutzer wählt eine Reihe von Daten aus einigen Listen aus, und dann wird meine Karte mit Daten aus meiner Datenbank aktualisiert und stellt dem Benutzer eine Karte mit einer Polylinie der ausgewählten Daten zur Verfügung. Die Daten werden mithilfe von jquery aus der Datenbank abgerufen und als json zurückgegeben. Mein Code analysiert den JSON und zeichnet die Polylinie. Mein JSON enthält eine Daten-ID, lat, lng. Funktioniert gut.Abrufen der Polylinien-ID Klicken Sie auf
Jetzt möchte ich, dass der Benutzer auf einen der Polylinienpunkte klicken kann und ich werde zusätzliche Daten für diese Daten-ID aus meiner Datenbank bekommen, aber ich habe Probleme beim Identifizieren der ID, auf die sie geklickt haben. Hat jemand eine schnelle Lösung um herauszufinden, welche ID in der Zeile angeklickt wurde?
Dies ist mein Listener für das Klickereignis Polylinie. Es kann zwar gut reagieren, aber ich weiß nicht, wie ich herausfinden soll, "welcher" Punkt geklickt wurde, damit ich meine zusätzlichen Daten abrufen kann. Im folgenden Beispiel wird die ID des ersten Elements in meiner Polylinie angezeigt, sodass ich weiß, dass ich auf das Array zugreife und das Ereignis ausgelöst wird. Ich muss nur in der Lage sein, den spezifischen Punkt zu finden, auf den ich geklickt habe. Ich bekomme mein JSON. Mein Test-Set hat 8.349 Punkte, die so aussehen.
{
"id": 1590065,
"lat": 37.07318,
"lng": -88.563132}
,{
"id": 1590066,
"lat": 37.07307,
"lng": -88.563002}
,{
"id": 1590067,
"lat": 37.072967,
"lng": -88.562875}
,{
"id": 1590068,
"lat": 37.07287,
"lng": -88.56275}
,{
"id": 1590069,
"lat": 37.072779,
"lng": -88.56263}
,....
Dann analysiere ich die Daten und weise es meine Koordinaten.
vesselPathCoordinates = JSON.parse("[" + data + "]");
Dann baue ich meine Polylinie.
Wenn der Benutzer auf einen bestimmten Punkt in der Zeile klickt, möchte ich wissen, welche ID von dem JSON, auf den sie geklickt haben. Mit anderen Worten, welcher Lat- und lng-Punkt auf der Linie das Ereignis ausgelöst hat.
Es tut uns leid. "vesselPath" ist meine Polylinie und "vesselPathCoordinates" ist mein Koordinatenfeld. – ScottM