谷歌地图方向服务发送不同的响应格式

时间:2012-04-05 13:52:24

标签: javascript google-maps

我正在使用javascript,google方向服务 我在地图上有多个源点和一个目标点。我需要找到距目的地点最近的源点。由于方向服务异步工作,我需要用lat / lang映射点。但问题是,方向服务发送的响应格式会发生变化。

    function calcRoute(start, end) {
    var request = {
        origin:start,
        destination:end,
        travelMode:google.maps.DirectionsTravelMode.DRIVING
    };

    directionsService.route(request, 
        function (response, status) {
            distanceCount++;
            if (status == google.maps.DirectionsStatus.OK) {                    
                var dist = computeTotalDistance(response);
                console.log(dist);
                if (dist < minDistance) {
                    minDistance = dist;
                    minDistanceIndex = locationsMap[response.ug.origin.Ua+""+response.ug.origin.Va];
                }
                if (distanceCount == vl.length) {
                    drawWay(vl[minDistanceIndex], fsl);
                }
            }
        }
    );
}

问题出现在

行上
minDistanceIndex = locationsMap[response.ug.origin.Ua+""+response.ug.origin.Va];

response.ug.origin.Va response.ug.origin.Ua 来自Google方向服务,但有时会更改为 response.ug。 origin.Xa response.ug.origin.Ya

你有什么想法为什么会不时变化?或任何想法如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

您不必访问这些内部属性,它们不是API的一部分,因此可能会更改。

仅使用规范中定义的属性/方法,响应提供的所有数据都可通过它们访问,

示例:

response.routes[0].legs[0].start_location
//returns latLng of the origin

除此之外:

您的说明听起来好像最好使用DistanceMatrixRequest