Как получить маркеры после вызова направлений движения в API Карт Google?

StackOverflow https://stackoverflow.com/questions/2434471

  •  19-09-2019
  •  | 
  •  

Вопрос

Я только вчера начал работать с API Карт Google и пытался настроить маршруты проезда на своей карте.Моя проблема:когда я вызываю функцию загрузки,

// [...]  
gdir = new GDirections(map, directionsPanel);  
// [...]  
gdir.load("from: " + fromAddress + " to: " + toAddress);  

он возвращает карту, маркеры которой нельзя перетаскивать.Итак, мне нужно сделать их перетаскиваемыми, чтобы пересчитать направления, но я не могу получить объекты маркеров.

Кто-то знает, как я могу это сделать?

Это было полезно?

Решение

Вам нужно добавить обработчик в GНаправления объект для надстройка событие:

GEvent.addListener(gdir, "addoverlay", onGDirectionsAddOverlay);

Когда ваш onGDirectionsAddOverlay обработчик, вы можете перебирать новые маркеры и заменять их перетаскиваемыми копиями:

for (var i = 0; i <= gdir.getNumRoutes(); i++) 
{
    var originalMarker = gdir.getMarker(i);
    latLngs[i] = originalMarker.getLatLng();
    icons[i] = originalMarker.getIcon();
    newMarkers[i] = new GMarker(latLngs[i], { icon: icons[i], draggable: true, title: 'Kan flyttes' });
    map.addOverlay(newMarkers[i]);

    // add stuff to your newMarkers[i] drag end event...
    // ...

    //Bind 'click' event to original markers 'click' event
    copyClick(newMarkers[i], originalMarker);

    // Now we can remove the original marker safely
    map.removeOverlay(originalMarker);
}

Вы можете найти рабочий пример этого здесь (источник).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top