2012-06-30 77 views
8

Requisitos: Al utilizar la aplicación js maps api, cuando el cliente hace clic en un marcador, se debe dibujar un rectángulo justo debajo del marcador, centrando de acuerdo con el marcador. Luego, al hacer clic en otro marcador, se eliminarán los rectángulos anteriores y se dibujará otro rectángulo debajo del marcador en el que se hizo clic recientemente.Eliminar polígono del mapa

Problema: Estoy utilizando el siguiente código para dibujar un polígono y puedo ver un rectángulo. Y dibuja el rectángulo en un marcador. Luego, al hacer clic en otro marcador, se dibuja un nuevo rectángulo. Pero el viejo rectángulo también todavía existe.

Pregunta: ¿Cómo debo implementar el comportamiento, de modo que al hacer clic en un marcador nuevo, el rectángulo anterior se elimine del mapa?

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

Respuesta

15

Me di cuenta por mi cuenta.

Esta fue la solución:

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

Funciona con L.rectangle también. –

1

que está trabajando así, probado con folleto 1.2.0.

window.polygon.remove()

+0

Justo lo que necesitaba, dentro de mi ciclo de actualización. Estaba agregando otro en cada ciclo. Ahora elimino el anterior antes de hacer uno nuevo. – radbyx

Cuestiones relacionadas