我正在使用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 。
你有什么想法为什么会不时变化?或任何想法如何处理这个问题?
答案 0 :(得分:0)
您不必访问这些内部属性,它们不是API的一部分,因此可能会更改。
仅使用规范中定义的属性/方法,响应提供的所有数据都可通过它们访问,
示例:
response.routes[0].legs[0].start_location
//returns latLng of the origin
除此之外:
您的说明听起来好像最好使用DistanceMatrixRequest