我自己做了一个路线经理,有几个选项(比如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,尝试了不同的东西,但没有,必须遗漏一些东西。
答案 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]