2012-06-30 9 views
8

Anforderungen: Wenn der Kunde auf einen Marker klickt, wird unter dem Marker js maps api ein Rechteck unter dem Marker zentriert entsprechend dem Marker angezeigt. Wenn Sie dann auf einen anderen Marker klicken, sollten Sie die vorherigen Rechtecke entfernen und ein weiteres Rechteck unter dem neu angeklickten Marker zeichnen.Polygon aus der Karte entfernen

Problem: Ich verwende den Code unten, um ein Polygon zu zeichnen, und ich kann ein Rechteck sehen. Und es zeichnet das Rechteck auf einen Marker. Dann wird durch Klicken auf einen anderen Marker ein neues Rechteck gezeichnet. Aber das alte Rechteck existiert auch noch.

Frage: Wie soll ich das Verhalten implementieren, so dass beim Klicken auf einen neuen Marker das alte Rechteck aus der Karte gelöscht wird?

//polygon 

var latBlockSize = 0.002; 
var lngBlockSize = 0.002; 
var route = [ 
     new L.LatLng(parseFloat(customer.MailingAddress.Lat) + latBlockSize, parseFloat(customer.MailingAddress.Lng) - lngBlockSize), 
     new L.LatLng(parseFloat(customer.MailingAddress.Lat) + latBlockSize, parseFloat(customer.MailingAddress.Lng) + lngBlockSize), 
     new L.LatLng(parseFloat(customer.MailingAddress.Lat) - latBlockSize, parseFloat(customer.MailingAddress.Lng) + lngBlockSize), 
     new L.LatLng(parseFloat(customer.MailingAddress.Lat) - latBlockSize, parseFloat(customer.MailingAddress.Lng) - lngBlockSize) 
    ]; 

window.polygon = new L.Polygon(route); 

window.map.addLayer(window.polygon); 

Antwort

15

Ich habe es selbst herausgefunden.

Dies war die Lösung:

window.map.removeLayer(window.polygon); 
+0

Arbeiten mit L.rectangle auch. –

1

das auch, getestet mit Leaflet 1.2.0 arbeitet.

window.polygon.remove()

+0

Genau das, was ich brauchte, in meiner Update-Schleife. Ich habe einen weiteren in jeder Schleife hinzugefügt. Jetzt entferne ich das vorher, bevor ich ein neues mache. – radbyx

Verwandte Themen