我在谷歌地图上使用directionsService。我在如何获得此路线上显示的标记的纬度和经度值时遇到麻烦?
var request = {
origin: nodes[0],
destination: nodes[0],
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.TravelMode[$('#travel-type').val()],
avoidHighways: parseInt($('#avoid-highways').val()) > 0 ? true : false,
avoidTolls: false
};
markerID = true;
directionsService.routes(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});;
答案 0 :(得分:1)
您应该能够遍历legs数组以获取数据。对于每个航路点,在路线中创建额外的航段。没有航点的航线只有1条航线。
每条腿都有一个起始位置,这是一个latlng对象。你可以像这样访问每条腿的坐标:
vectorizer
上面的代码将为您提供除目标之外的每个标记的latlng坐标。您可以通过查看最后一段的end_locatoin来获取目的地,但由于DirectionsService通过在起点和终点使用最近的交通选项(通常是道路)来计算位置之间的路线,因此end_location可能与提供的目的地不同例如,如果道路不在目的地附近,则该腿。话虽如此,您可以使用以下代码来获取end_location:
for(var q = 0; q<route.legs.length; q++){
alert(route.legs[q].start_location.lat() + " " + route.legs[q].start_location.lng());
}
我希望这有帮助!