我在嘗試計算一個位置和其他位置之間的距離(以獲得最近的位置)時遇到一些問題。 我嘗試通過使用Location.distanceBetween(...)和location.distanceTo(...),這兩種方法正在工作,但他們都給我不同的數據,並沒有任何人看起來是正確的。Android Location.distanceBetween和Location.distanceTo區別
我的數據來自Class ConcessionDistance,它是包含位置數據的HashMap的基本擴展(作爲整數轉換爲字符串)以及其他我們在此不需要的東西。
private ArrayList<ConcessionDistance> getMapsConcessionsDistancesFromPoint(ArrayList<ConcessionDistance> al, Location currentLocation) {
Location dest;
float distance1,distance2;
float[] curDist = new float[1];
double lati,longi;
Log.i("DBTableConcessions","getMapsConcessionsDistancesFromPoint: Generation d'une map de donnée de concession");
for(ConcessionDistance curConc : al){
//Distance by method 1
dest = new Location(LOCATION_PROVIDER);
lati = new Double((new Integer(curConc.get("concession_latitude"))) /1e6);
longi = new Double((new Integer(curConc.get("concession_longitude"))) /1e6);
dest.setLatitude(lati);
dest.setLongitude(longi);
distance1 = currentLocation.distanceTo(dest);
//Distance by method2
Location.distanceBetween(
currentLocation.getLatitude(),
currentLocation.getLongitude(),
(double) ((new Integer(curConc.get("concession_latitude"))) /1000000),
(double) ((new Integer(curConc.get("concession_longitude"))) /1000000),
curDist);
distance2 = curDist[0];
Log.i("DBTableConcessions","distance :"+distance1+" ou "+distance2);//+" ,lat :"+lati+" ,long "+longi); //+"curDist{0="+curDist[0]+",1="+curDist[1]+",2="+curDist[2]+"}"
//Saving one of the distance
curConc.put("distance",String.valueOf(distance1));
}
return al;
}
有人可以幫助我,找出問題出在哪裏? 我想轉換問題,但我對深的問題,通過提前解決它自己:(
任何幫助將受到歡迎謝謝
編輯:。這是我的logcat的一部分:我發送到模擬器的GPS位置「斯特拉斯堡」的(這些都是從東,法國城市)和工藝距離到所有這些城市:
06-29 06:37:37.215: INFO/DBTableConcessions(809): distance from EVRY :346254.66 ou 373061.38
06-29 06:37:37.235: INFO/DBTableConcessions(809): distance from HAGUENAU CEDEX :105491.984 ou 0.0
06-29 06:37:37.235: INFO/DBTableConcessions(809): distance from BESANCON CEDEX :110127.08 ou 134302.03
06-29 06:37:37.265: INFO/DBTableConcessions(809): distance from BREST CEDEX 9 :852829.1 ou 820181.7
06-29 06:37:37.295: INFO/DBTableConcessions(809): distance from HOENHEIM :87783.39 ou 0.0
06-29 06:37:37.326: INFO/DBTableConcessions(809): distance from COLMAR :28067.428 ou 0.0
06-29 06:37:37.355: INFO/DBTableConcessions(809): distance from BELFORT :40919.13 ou 134302.03
06-29 06:37:37.446: INFO/DBTableConcessions(809): distance from SARREBOURG :81606.31 ou 0.0
這些城市之間的實際距離(由谷歌地圖提供) 「斯特拉斯堡」是:
埃夫:520公里(方法一:小姐175公里,方法二:小姐145公里)
阿格諾:30公里(方法一:加70公里,方法二:返回0)
貝桑鬆:250公里(方法一:小姐140公里,方法2 :想念120公里)
佈雷斯特:1070公里(方法一:小姐200公里,方法二:小姐230公里)
奧埃南:5公里(方法一:加80公里,方法二:返回0)
科爾馬:75公里(方法一:錯過50公里,方法2:返回0)
貝爾福:155公里(方法一:小姐110公里,方法2:懷念20公里)
薩伯格:75公里(方法一:錯過5km的方法2:返回0)
因此,我們可以看到,第二個方法返回0當真正的距離低於〜100km,其中方法1我看不到任何邏輯inhere:/
小心分享什麼結果,你期待什麼投入,以及你實際收到什麼結果? – Travis
我編輯了我的第一篇文章,以便添加 –
此外,問題並非來自列表中的初始數據,因爲它們在我的MapView中顯示得很好...... –