directionsService.route结果获取所有标记纬度经度值

时间:2017-03-20 11:12:09

标签: javascript google-maps google-maps-api-3

Sample displayed route on map

我在谷歌地图上使用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);
                }
            });;

1 个答案:

答案 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()); 
}

我希望这有帮助!