【发布时间】:2016-01-22 13:48:19
【问题描述】:
我正在使用 Google Maps API V3 使用 google.maps.DirectionService 绘制 startPosition 和 endPosition 两点之间的步行路线。然后它应该打印以控制路线的距离和旅行持续时间。
问题:虽然代码确实成功绘制了路线,但directionsDisplay.setDirections似乎缺少一个回调函数来将距离和旅行时间值返回给调用者。
此外,为directions_changed 添加监听器似乎也不起作用,监听器没有被触发!
任何想法如何将距离值和旅行时间值从displayRoute() 传递给它的调用者?
displayRoute = function(startPosition, endPosition) {
var start = startPosition
var end = endPosition
var map = GoogleMaps.maps.map.instance
var directionsDisplay = new google.maps.DirectionsRenderer({'map': map});
var directionsService = new google.maps.DirectionsService();
var request = {
origin : start,
destination : end,
travelMode : google.maps.TravelMode.WALKING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response)
// ... and triggers listener for 'directions_changed'
}
});
google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
console.log('directions_changed') # not executed
console.log(response.routes[0]) # not executed
return response.routes[0]
});
}
var route = displayRoute(startPos, endPos)
console.log(route.duration.value) # undefined
console.log(route.distance.value) # undefined
【问题讨论】:
标签: javascript node.js google-maps