Я не знаю, можно ли назначить события узлу полилинии, но вы можете добавить объект-маркер в том же месте узла и назначить ему событие.
Я изменил Googlepolyline-complex.html
пример для удаления и добавления узлов.
В этом примере Google добавляет маркеры на карту, когда пользователь щелкает левой кнопкой мыши на карте, а затем соединяет маркеры с полилинией.Я добавил слушателя, щелкающего правой кнопкой мыши на маркер, который удаляет узел из ломаной линии.
Вот код: (Вот пример скрипта , чтобы увидеть полный код работающего)*
//after the marker is created in the addLatLng function
google.maps.event.addListener(marker, 'rightclick', removeLatLng);
...
//function to remove node.
function removeLatLng(event) {
//remove the marker from the map
this.setMap(null);
//get the polyline array
var path = poly.getPath();
//iterate over the array and remove the point that matches the marker coords.
path.forEach(function(element, idx) {
if (event.latLng == element) {
path.removeAt(idx);
}
});
}
Хитрость в том, что вам нужен индекс массива для узла, который вы хотите удалить.Без маркера событие правого клика может не вернуть точные координаты узла и затруднить поиск индекса.
Если вам не нравится рисунок маркера для использования в качестве узла, вы можете настроить свойство значка с помощью пользовательского файла * .png для представления узла.