0

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

    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.Varesponse.ug.origin.Ua来自谷歌方向服务,但有时会变为response.ug.origin.Xaresponse.ug.origin.Ya

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

4

1 回答 1

0

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

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

例子:

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

除此之外:

您的描述听起来好像您最好使用DistanceMatrixRequest

于 2012-04-05T15:50:41.447 回答