2012-06-30 5 views
8

요구 사항 : 전단지 js maps api를 사용하여 고객이 마커를 클릭하면 마커 바로 아래에 마커 바로 아래에 직사각형이 그려집니다. 그런 다음 다른 마커를 클릭하면 이전 직사각형을 제거하고 새로 클릭 한 마커 아래에 다른 사각형을 그립니다.지도에서 다각형 제거

문제 : 아래 코드를 사용하여 다각형을 그리기 위해 직사각형을 볼 수 있습니다. 그리고 마커에 직사각형을 그립니다. 그런 다음 다른 마커를 클릭하면 새 사각형이 그려집니다. 그러나 오래된 사각형도 여전히 존재합니다.

질문 : 새 마커를 클릭 할 때 이전 사각형이지도에서 삭제되도록 동작을 어떻게 구현해야합니까?

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

답변

15

나는 그것을 스스로 알아 냈다. 뿐만 아니라 작동하는지

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

L.rectangle에도 사용할 수 있습니다. –

1

, 전단지 1.2.0 테스트 :

솔루션이었다.

window.polygon.remove()

+0

내 업데이트 루프 내부에서 필요한 것. 나는 각 루프마다 다른 것을 추가하고 있었다. 이제 새 것을 만들기 전에 이전에 제거합니다. – radbyx