Карты Google теперь предоставляют объект обратного вызова « PolyMouseEvent » для событий, которые инициируются с полигона или полилинии.
Чтобы опираться на другие ответы, в которых предлагалось решение, включающее щелчок правой кнопкой мыши, все, что вам нужно сделать, это следующее в последних версиях API V3:
// this assumes `my_poly` is an normal google.maps.Polygon or Polyline
var deleteNode = function(mev) {
if (mev.vertex != null) {
my_poly.getPath().removeAt(mev.vertex);
}
}
google.maps.event.addListener(my_poly, 'rightclick', deleteNode);
Вы заметите, что любые сложные вычисления того, приближаемся ли мы к точке или нет, больше не нужны, поскольку API Карт Google теперь сообщает нам, на какой вершине мы щелкнули.
Примечание: это будет работать только тогда, когда Полилиния / Полигон находится в режиме редактирования. (То есть, когда вершины, которые вы хотите удалить, видны.)
В качестве заключительной мысли вы могли бы рассмотреть возможность использования события щелчка или двойного щелчка. «Клик» достаточно умен, чтобы не вызывать перетаскивания, хотя использование триггера одним щелчком может все же удивить некоторых ваших пользователей.