>  기사  >  웹 프론트엔드  >  Google Maps API를 사용하여 points_javascript 기술 사이의 거리에 대한 js 코드를 가져옵니다.

Google Maps API를 사용하여 points_javascript 기술 사이의 거리에 대한 js 코드를 가져옵니다.

WBOY
WBOY원래의
2016-05-16 17:49:201173검색
코드 복사 코드는 다음과 같습니다.

var request;
var distanceArray = [];
function getdistance() {
distanceArray = [];
var DirectionService = new google.maps.DirectionsService()
for (var a = 0; a < pointsArray.length; a ) {
for (var b = 0; b < pointsArray.length; b ) {
if (a != b) {
request = null;
request = {
원산지: pointsArray[a ],
목적지: pointsArray[b],
travelMode: google.maps.DirectionsTravelMode.DRIVING,
unitSystem: google.maps.DirectionsUnitSystem.METRIC
}; 경로(요청, 함수(응답, 상태) {
if (status == google.maps.DirectionsStatus.OK) {
var myRoute = response.routes[0].legs[0].distance.value; //경로 길이
distanceArray.push(myRoute)
}
})
}
}
}
}

질문 Google Maps API를 사용하여 여러 지점 사이의 거리를 얻을 때 얻은 거리 정보가 올바른지 확인하는 방법을 알려드리겠습니다.

예를 들어 pointsArray[]에 세 개의 점 a, b, c가 있습니다. 어떻게 [a, b], [a, c], [b, a], [를 순서대로 얻을 수 있나요? ,c],[c,a],[c,b] 거리 정보입니다.

위 코드에서는 a!=b의 모든 거리가 솔루션을 위해 DirectionService.route에 한 번에 전달됩니다. 즉, 주변 FOR 루프 제어는 이에 쓸모가 없습니다. 따라서 거리를 하나씩 얻기 위해 FOR 루프에 의존한다는 기대는 실패했습니다. 그러나 디버깅을 추가하고 루프 해결 프로세스를 단계별로 제어하면 정렬된 거리 배열을 얻을 수 있습니다. 나는 그것을 이해할 수 없다!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.