Google maps API - 从路线来源检索latlng?

时间:2016-05-03 15:38:52

标签: javascript google-maps google-maps-api-3 latitude-longitude directions

我想知道如何在计算路线时从路线请求的原点检索latlng。 我想用它围绕已经制作的路线的原点绘制一个圆圈。

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 dev页面中的自动完成方法,该页面位于我的初始化函数中,该函数返回所有类型的位置。

//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);
//--------------------------------------------------

我研究过,我是否需要返回地址然后使用地理编码器来检索我想要的数据,或者这可以通过我的代码现在的方式来完成。

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

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

1 个答案:

答案 0 :(得分:0)

这样可行......

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