2012-06-30 12 views
8

Требования: Использование листа букв 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); 

ответ

15

Я понял это самостоятельно.

Это было решением:

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

Работает с L.rectangle тоже. –

1

Это работает так же, протестировано с листовкой 1.2.0.

window.polygon.remove()

+0

Только то, что мне нужно, внутри цикла обновления. Я добавлял другой в каждый цикл. Теперь я удаляю ранее, прежде чем создавать новый. – radbyx

 Смежные вопросы

  • Нет связанных вопросов^_^