Google 地图 API - 从方向原点检索经纬度?

Google maps API - retrieve latlng from origin of directions?

我想知道如何在计算路线后从路线请求的起点检索经纬度。 我想用它在已经完成的路线原点周围画一个圆圈。

function calcRoute() {
start = document.getElementById("start").value; //value from start textbox
end = document.getElementById("end").value; //value from end textbox

var request = {
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(result, status) {
    //if route can be generated
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(result);

        //circle.setCenter();

    }else{
        //display window alert with status error
        window.alert('Directions request failed due to ' + status);
    }
});
}

用于起点和终点的文本框使用来自 google 开发页面的自动完成方法,该方法位于我的初始化函数内,return 包含所有类型的位置。

//autocomplete section
var inputStart = document.getElementById('start');
var optionsStart = {}; //Empty which will return all types
autocomplete = new google.maps.places.Autocomplete(inputStart, optionsStart);

var inputEnd = document.getElementById('end');
var optionsEnd = {}; //Empty which will return all types
autocomplete = new google.maps.places.Autocomplete(inputEnd, optionsEnd);
//--------------------------------------------------

我研究过,我是否只需要 return 个地址然后使用地理编码器检索我想要的数据,或者这可以用我现在的代码方式完成吗?

我看过这段代码,但如果这也有帮助,我不知道如何实现它。

 result.routes[0].legs[0].start_location;

那行得通...

result.routes[0].legs[0].start_locationLatLng object.

因此您可以使用它来创建标记或设置圆心。我们错过了您创建圆圈的代码。但是你可以这样做:

circle.setCenter(result.routes[0].legs[0].start_location);

如果您的圈子尚未创建:

var circleOptions = {
    fillColor: '#FFFFFF',
    fillOpacity: 0.25,
    map: map,
    center: result.routes[0].legs[0].start_location,
    radius: 10000
};

var circle = new google.maps.Circle(circleOptions);

下面是一个完整的例子:

JSFiddle demo