利用谷歌地圖API獲取點與點的距離的js代碼
更新時間:2012年10月11日 23:43:29 作者:
下面是一段利用谷歌地圖API獲取點點之間距離的代碼,采用V3版本中的DirectionsService()
復制代碼 代碼如下:
var request;
var distanceArray = [];
function getdistance() {
distanceArray = [];
var directionsService = 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 = {
origin: pointsArray[a],
destination: pointsArray[b],
travelMode: google.maps.DirectionsTravelMode.DRIVING,
unitSystem: google.maps.DirectionsUnitSystem.METRIC
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var myRoute = response.routes[0].legs[0].distance.value; //路線長度
distanceArray.push(myRoute);
}
});
}
}
}
}
有一個問題想與大家交流一下,利用谷歌地圖API獲取批量的點點之間的距離時,如何保證自己得到的距離信息是有序的?
比如:有pointsArray[]中有a,b,c三個點的數(shù)據(jù),我怎么才能按序得到[a,b],[a,c],[b,a],[b,c],[c,a],[c,b]的距離信息。
在上面的代碼中,所有a!=b的距離都是一次性傳給directionsService.route進行求解的,也就是說,外圍的FOR循環(huán)控制對其沒有用。所以想依靠FOR循環(huán)一個一個按序獲得距離的期望失敗了。但是如果在其中加入調(diào)試,一步一步控制其循環(huán)求解的過程,卻能得出有序距離數(shù)組。不得其解??!
相關文章
window.open()實現(xiàn)post傳遞參數(shù)
本文主要向大家介紹了如何使用window.open()實現(xiàn)post傳遞參數(shù)的方法,思路是參考的一位網(wǎng)友的,然后根據(jù)自己的項目需求做了些調(diào)整,這里同樣分享給大家,希望對大家能夠有所幫助。2015-03-03BootStrap表單控件之復選框checkbox和單選擇按鈕radio
這篇文章主要介紹了BootStrap表單控件之復選框checkbox和單選擇按鈕radio的相關資料,需要的朋友可以參考下2017-05-05JS面向?qū)ο蠡A講解(工廠模式、構造函數(shù)模式、原型模式、混合模式、動態(tài)原型模式)
這篇文章主要介紹了面向?qū)ο驤S基礎講解,工廠模式、構造函數(shù)模式、原型模式、混合模式、動態(tài)原型模式,需要的朋友可以參考下2014-08-08