我試圖創建一個函數,以便根據我在哪裏和其他點返回地圖上各個點之間的距離。點之間的距離
但是這樣可以得到在數據庫第一點獲得的距離。
你能幫我嗎?
if (cursor.getCount() > 0) {
if (cursor != null && cursor.moveToFirst()) {
lat_s = >cursor.getString(cursor.getColumnIndex("latitude"));
lng_s = >cursor.getString(cursor.getColumnIndex("longitude"));
lat_p = Double.parseDouble(lat_s);
lng_p = Double.parseDouble(lng_s);
double dist = getDistancia(lat, lng, lat_p, lng_p);
}
@SuppressWarnings("deprecation")
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this,
R.layout.list_row, cursor, from, to);
listView.setAdapter(mAdapter);
}
,並返回我的距離的函數是:
public double getDistancia(double latitude, double longitude,
double latitudePto, double longitudePto){
double dlon, dlat, a, distancia;
dlon = longitudePto - longitude;
dlat = latitudePto - latitude;
a = Math.pow(Math.sin(dlat/2),2) + Math.cos(latitude) *
Math.cos(latitudePto) * Math.pow(Math.sin(dlon/2),2);
distancia = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return 6378140 * distancia; /* 6378140 is the radius of the Earth in meters*/
}
我有在SO上已經回答了類似的問題。請檢查此鏈接:http://stackoverflow.com/questions/19332850/calculate-shortest-path-between-two-geo-points/19355447#19355447 – Arshu
看看[這] [1]類似的問題。這有很多有用的答案。 [1]:http://stackoverflow.com/questions/19218081/how-to-calculate-distance-from-different-markers-in-a-map-and-then-pick-up- -l – Akshat