2012-06-30 13 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

関連する問題