0
我正在制定計劃安排程序android應用程序。將Lat lng與一組數據庫數據進行比較的算法
的數據是這樣的:
Place
========
lat
lng
duration (e.g. 0.5 hour)
isPerferred
所以我得根據cirteria例如一個地方的名單。給5小時,得到一組地方。
問題是,無論偏好是什麼,我必須比較經緯度並得到最近選定地點最近的位置,但是性能是一個問題,除了比較之外,還有什麼應用可以實現呢?一個接一個的經歷?由於
public double getDistance(double lat1, double lon1, double lat2, double lon2) {
if (lat1 == lat2 && lon1 == lon2)
return 0;
double latA = Math.toRadians(lat1);
double lonA = Math.toRadians(lon1);
double latB = Math.toRadians(lat2);
double lonB = Math.toRadians(lon2);
double cosAng = (Math.cos(latA) * Math.cos(latB) * Math.cos(lonB-lonA)) +
(Math.sin(latA) * Math.sin(latB));
double ang = Math.acos(cosAng);
double dist = ang *6371;
return dist;
}
謝謝,這仍然是一個做計算嗎? – user782104
我認爲我們可以假設它已經過優化,但是您可以對自己的實現做一個快速測試 –