Привязка к ближайшему маркеру
-
18-09-2019 - |
Вопрос
я использую GoogleMaps, и у меня есть 2 или более маркера, и их можно перетаскивать.Я хочу привязать 2 маркера, если они находятся рядом, и объединить их в 1.возможно ли это ?
Может кто - нибудь дать мне советы ..как я могу это осознать ?
Решение
Вам нужно справиться с событие перетаскивания на GMarker ( ГМаркер ) объект.Хитрость заключается в том, что вы делаете, когда обнаруживаете, что находитесь достаточно близко к другому маркеру, чтобы соединить их вместе.Я немного поиграл вокруг да около учитывая это, я подумал, что, возможно, хорошим способом было бы скрыть перетаскиваемый в данный момент маркер.
GEvent.addListener(marker, "drag", function(point) {
// iterate over your points and for each otherPoint...
if (near (point, otherPoint))
{
// hide this marker
marker.hide ();
// move nearby marker to indicate merge?
// then delete the dragged marker on the dragend (if it was merged)
}
}
Не совсем элегантное решение, но оно может подойти для ваших целей.
Редактировать:Мне было интересно, ищете ли вы код для проверки близлежащих точек, поэтому я обновил свой пример, чтобы сделать это:
function near (point1, point2)
{
sw = new GLatLng(point2.lat() - 0.005, point2.lng() - 0.005);
ne = new GLatLng(point2.lat() + 0.005, point2.lng() + 0.005);
var bounds = new GLatLngBounds(sw, ne);
if (bounds.contains (point1))
return true;
return false;
}