обновить маршрутные точки - PullRequest
8 голосов
/ 07 марта 2012

Я сделал себя менеджером маршрутов с парой опций (например, позволяет избежать поездок, путешествия, режима, избегать путевых точек) и перетаскиваемых маршрутов.

Я создал var lastRequest = [] для хранения DirectionsRequest properties из последнего рендера.

Код выглядит так:

directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        var directions = parseDirections(response, mode, tolls)
        directionsDisplay.setDirections(response)
    }
});

google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
    refreshReq(directionsDisplay.getDirections())
})

function refreshReq(response)
{
    //
}

Я застрял, пытаясь найти решение для обновления directions_changed my lastRequest['waypoints'] новыми данными из response, поэтому мой сценарий сможет сохранять объект путевых точек и повторять lastRequest в любое время.

Трудность наступает, когда я беру с response Массив путевых точек, как мне нужно

Варианты пробной пары:
lastRequest['waypoints'] = response['routes'][0]['legs'][0]['via_waypoints']
но это было не так.

Следующим шагом было восстановление каждой путевой точки одна за другой с помощью new google.maps.LatLng(), но по какой-то причине не работало даже после того, как я поместил их в массив с помощью eval ().

Изменил остановку на false / true, пробовал разные вещи, но ничего, должно быть что-то упустил.

1 Ответ

1 голос
/ 08 марта 2013
Массив

points js, который я сгенерировал с помощью php, необходимо обновить из via_waypoints

for (var p in req.routes[0].legs[0].via_waypoints)
  points[p]['location'] = req.routes[0].legs[0].via_waypoints[p]
...