2017-04-15 3 views
2

Ich versuche, eine Liste von Punkten auf einer Karte anzuzeigen und jedem Punkt seinen Index als Popup-Ereignis zuzuordnen.Leaflet bindpopup inside loop

for(i = 0 ; i<data.length; i++){ 
var circle = L.circle([data[i].lat, data[i].lon], { 
    radius: 5 
}).bindPopup(toString(i)).addTo(mymap); 
} 

aber in der Web-Seite, wenn ich auf einem Kreis klicken Sie stattdessen auf eine Reihe von zeigt es zeigt [object undefiniert]

Dank.

Antwort

1

Ihr Code ist korrekt, mit Ausnahme der Art, wie Sie eine Zahl in eine Zeichenfolge umwandeln. Die toString eine Zahl Methode, so muss es sich aus der Anzahl Objekt

Versuchen Sie, den folgenden Code aufgerufen werden:

for(i = 0 ; i<data.length; i++){ 
var circle = L.circle([data[i].lat, data[i].lon], { 
    radius: 5 
}).bindPopup(String(i)).addTo(mymap); 
} 

oder

for(i = 0 ; i<data.length; i++){ 
var circle = L.circle([data[i].lat, data[i].lon], { 
    radius: 5 
}).bindPopup(i.toString()).addTo(mymap); 
}