2012-06-30 14 views
8

Requisiti: Usando il libretto js maps api, quando il cliente fa clic su un marker, un rettangolo deve essere disegnato appena sotto il marker, centrando secondo il marker. Quindi, facendo clic su un altro marcatore, rimuovere i rettangoli precedenti e disegnare un altro rettangolo sotto il nuovo indicatore cliccato.Rimuovi poligono dalla mappa

Problema: Sto usando il codice qui sotto per disegnare un poligono e posso vedere un rettangolo. E disegna il rettangolo su un pennarello. Quindi facendo clic su un altro marker viene disegnato un nuovo rettangolo. Ma il vecchio rettangolo esiste ancora.

Domanda: Come devo implementare il comportamento, in modo che quando si fa clic sul nuovo marker, il vecchio rettangolo venga cancellato dalla mappa?

//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); 

risposta

15

L'ho capito da solo.

questa era la soluzione:

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

Funziona con L.rectangle troppo. –

1

che sta lavorando così, testati con Volantino 1.2.0.

window.polygon.remove()

+0

Proprio quello di cui avevo bisogno, all'interno del mio ciclo di aggiornamento. Ne aggiungevo un altro in ogni ciclo. Ora rimuovo il precedente prima di crearne uno nuovo. – radbyx