要求:使用Leaflet js maps api,当客户点击标记时,应在Marker下方绘制一个Rectangle,并根据标记居中。然后单击另一个标记应删除以前的矩形,并在新单击的标记下方绘制另一个矩形。
问题:我使用下面的代码绘制多边形,我可以看到一个矩形。它在标记上绘制矩形。然后通过单击另一个标记,将绘制一个新的矩形。但旧的矩形也仍然存在。
问题:我应该如何实现这种行为,以便在点击新标记时,旧的矩形将从地图中删除?
//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);
答案 0 :(得分:18)
我自己想出来了。
这是解决方案:
window.map.removeLayer(window.polygon);
答案 1 :(得分:3)
这也是有效的,使用Leaflet 1.2.0测试。
window.polygon.remove()