在directions_changed上刷新路标

Al *_* Po 8 javascript javascript-events google-maps-api-3

我自己做了一个路线经理,有几个选项(比如avoidTolls travelMode avoidHighways waypoints)和可拖动的路线.

我创建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)
{
    //
}
Run Code Online (Sandbox Code Playgroud)

我很难找到一个解决方案来刷新directions_changedlastRequest['waypoints']的新数据,response所以我的脚本将能够存储一个路标对象并重做lastRequest我想要的任何时间.

当我从response我需要的路径阵列中取出时会遇到困难

试过几个变种:
lastRequest['waypoints'] = response['routes'][0]['legs'][0]['via_waypoints']
但事实并非如此.

下一步是逐个重新生成每个路点,new google.maps.LatLng()但由于某种原因,即使我用eval()将它们推入数组后也无法工作.

将中途停留更改为false/true,尝试了不同的东西,但没有,必须遗漏一些东西.

Al *_* Po 1

我由 php 生成的点 js 数组需要从 via_waypoints 刷新

for (var p in req.routes[0].legs[0].via_waypoints)
  points[p]['location'] = req.routes[0].legs[0].via_waypoints[p]
Run Code Online (Sandbox Code Playgroud)