10

要件: リーフレット js マップ 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);
4

2 に答える 2

22

私は自分でそれを理解しました。

これが解決策でした:

window.map.removeLayer(window.polygon);
于 2012-07-03T05:59:54.630 に答える