在directions_changed上刷新路标

时间:2012-03-07 04:35:39

标签: 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)
{
    //
}

我找不到使用来自directions_changed的新数据在lastRequest['waypoints'] response lastRequest上刷新的解决方案,因此我的脚本将能够存储路标对象并重做{{1我想要的任何时候。

当我从response获取像我需要的航点数

时,会遇到困难

尝试过几种变体:
lastRequest['waypoints'] = response['routes'][0]['legs'][0]['via_waypoints']
但那不是那个。

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

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

1 个答案:

答案 0 :(得分: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]