Событие перемещения мыши для вершины полилинии в картах Google API v3

Я хотел бы показать информационное окно, когда я перемещаю вершину на редактируемой полилинии. Эта информация покажет расстояние и направление до предыдущей вершины полилинии. Когда я опускаю вершину, информационное окно должно быть закрыто. Проблема в том, что у полилинии нет события перетаскивания вершины. Я попробую с движением мыши полилинии, но оно срабатывает после завершения перемещения. В следующем коде я показываю пример того, что я сказал. У меня есть полилиния (flightPath). Если я нажму на последнюю вершину, я захочу одновременно переместить маркер. Но это не работает. Маркер перемещается после завершения движения.

google.maps.event.addListener(flightPath, 'mousemove', function (event) {
   if (typeof event.vertex === "undefined") {
        moveline = 0
   }
   else {
       if (event.vertex == (flightPath.getPath().getLength()-1)) {
            var path = flightPath.getPath();
            marker.setPosition(path.getAt(event.vertex));
       }
   }
});

Какое-то предложение?

Примечание. Моя полилиния доступна для редактирования.

Спасибо


person briast    schedule 18.12.2013    source источник
comment
comment
Спасибо за ваш ответ, но он не работает так, как я хочу. Перед публикацией этого вопроса я попробовал использовать пример карты Google link для привязки маркеров к вершине, но моя полилиния доступна для редактирования = true. Затем я могу переместить вершину, не перемещая маркер, хотя они связаны.   -  person briast    schedule 19.12.2013


Ответы (1)


Вы можете управлять конечным событием перетаскивания на маркере и изменять de latLng вершины:

google.maps.event.addListener(marker, 'dragend', function(evt){

var vertex = marker.get('vertex');

var path = flightPath.getPath();

var newPath = Array.prototype.slice.call(path).filter(
function(element, index){
    return index < vertex;
}).concat([evt.latLng],
Array.prototype.slice.call(path).filter(
function(element, index){
    return index > vertex;
}));
flightPath.setPath(newPath);


});

Извините за мой плохой английский, но я надеюсь, что это поможет.

person user2253368    schedule 24.06.2014