Я помещаю маркер на свою карту с перетаскиваемым свойством true. Я хочу ограничить движущийся маркер не более чем на 500 метров от исходного положения. Как мне это сделать? Есть ли лучший способ, которым я пытался?Ограничение движения маркера от начальной точки (API Google Maps 3)
Я пробовал с событием перетаскивания. Я измеряю расстояние с кодом I found on SO. Но я не знаю, как я могу предотвратить перетаскивание. Я пытаюсь вернуть false, попытаться просмотреть, отменяет ли параметр функции или что-то в этом роде.
google.maps.event.addListener(marker, 'drag', function(e)
{
var distance = Application.getMapDistance(data[0].geometry.location, marker.getPosition());
document.title = distance;
if (distance > 500)
return false; //not working, e has no cancel or something like that
});
Edit:
Видимо кто-то не доволен моим вопросом. Да, основная логика заключалась бы в том, чтобы установить положение маркера google в последний раз, но таким образом маркер мерцает, когда он перемещается за пределы. Я уверен, Google может сделать лучше, чем это.
google.maps.event.addListener(marker, 'drag', function(e)
{
var distance = Application.getMapDistance(data[0].geometry.location, marker.getPosition());
document.title = distance;
if (distance > 500)
marker.setPosition(lastGoodPosition);
else
lastGoodPosition = marker.getPosition();
});
Вы пробовали просто сбросить положение маркеров, когда он потащил за пределами ваших границ? –
Нет, я знаю, что есть лучший способ. При установке позиции маркера в новые координаты я ожидаю некоторого мерцания. – Makla
Не разрабатывая свой класс маркеров и не перетаскивая реализацию, я не могу придумать лучшего способа. –