我創建使用鈦Appcelerator的的Android & IOS的應用程序。排序地理位置點,我點鈦
我只是有一個緯度值數組,我想排序最接近我指定的經度和緯度的數組。 我怎樣才能得到這些values.Pleasae的幫助。
我創建使用鈦Appcelerator的的Android & IOS的應用程序。排序地理位置點,我點鈦
我只是有一個緯度值數組,我想排序最接近我指定的經度和緯度的數組。 我怎樣才能得到這些values.Pleasae的幫助。
實現此目的的一種方法可能是: 1.使用Haversine公式計算指定位置(源緯度,源經度)和數組中項目(目標緯度,目標經度)之間的距離。 2.對數組中的每個項目重複步驟1。 3.對數組排序。
以下是這可能會派上用場幾個環節: - Using the Haversine Formula in Javascript
,你可以用它來計算兩者之間的距離Lat Long網:
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
return dist
}
//::: Passed to function: :::
//::: lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees) :::
//::: lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees) :::
//::: unit = the unit you desire for results :::
//::: where: 'M' is statute miles (default) :::
//::: 'K' is kilometers :::
//::: 'N' is nautical miles
在推入數組中的所有距離後,您可以輕鬆地對accor進行排序根據你的需要。