基本上我希望能够从Google地图视图中提取路线中的起点,终点和任何航点的纬度和经度信息。
目前我正在使用此示例https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-directions
在对此进行测试时,我只是将我需要的信息存储在全局范围内名为“route”的变量中。
var saveRoute = function (directionsDisplay) {
var final_waypoints=[], waypoints;
var route_legs = directionsDisplay.directions.routes[0].legs[0];
if(!route_legs) {
return
}
route.start = {'lat': route_legs.start_location.lat(), 'lng': route_legs.start_location.lng()}
route.end = {'lat': route_legs.end_location.lat(), 'lng': route_legs.end_location.lng()}
var waypoints = route_legs.via_waypoints
for(var i=0;i<waypoints.length;i++) {
final_waypoints[i] = [waypoints[i].lat(), waypoints[i].lng()]
}
route.waypoints = final_waypoints;
}
我最初可以通过在'setupPlaceChangedListener'中调用我自己的函数来获取我需要的信息,该函数从DirectionsRenderer对象中读取信息并将其保存在变量中。但是,我想允许用户拖动显示的路线,允许他们更改确切的路线(不一定是开始和目的地)。
最初我希望我可以在发生更改时触发某些事件来重新运行我的功能。 “dragend”功能仅在拖动地图时有效,并且只有在拖动包含新航点时才会执行任何操作。
有没有办法做到这一点?我这样滥用Google Maps API吗?有更好的方法吗?
答案 0 :(得分:0)
来自Draggable Directions的文档:
由于可拖动路线被修改并呈现在客户端,您可能希望监控并处理DirectionsRenderer上的directions_changed事件,以便在用户修改显示的路线时收到通知。