lat = 6.92961234
lng = 79.84796614
lat1 = 6.85620511
lng1 = 79.91251376
Location locationA = new Location("point A");
locationA.setLatitude(lat);
locationA.setLongitude(lng);
Location locationB = new Location("point B");
locationB.setLatitude(lati);
locationB.setLongitude(lngi);
double distancei = locationA.distanceTo(locationB);
String cc = Double.toString(distancei);
float[] results = new float[1];
Location.distanceBetween(lati / 1E6, lngi / 1E6, lat / 1E6, lng / 1E6,results);
float s = results[0] * 0.000621371192f;
String a2 = Float.toString(s);
两种方法给了我不同的答案以及两个错误的错误 ..因为我看了谷歌地图和它显示的关于14公里(大约8英里)的答案。但答案显示为6点。而且我不知道它的米/公里/英里。
请帮帮我......谢谢
答案 0 :(得分:1)
如果您已经麻烦地生成了一些编译和运行的代码,请阅读javadoc并通过调试器运行以下更正的代码:
private void test() {
double lat = 6.92961234;
double lng = 79.84796614;
double lati = 6.85620511;
double lngi = 79.91251376;
Location locationA = new Location("point A");
locationA.setLatitude(lat);
locationA.setLongitude(lng);
Location locationB = new Location("point B");
locationB.setLatitude(lati);
locationB.setLongitude(lngi);
double distancei = locationA.distanceTo(locationB);
float[] results = new float[3];
Location.distanceBetween(lati, lngi, lat, lng, results);
// Distance in metres is in results[0]
}
您会看到distancei和results [0]都给出了相同的答案,即10807米。这对我来说似乎是正确的。