距离返回的距离是多少?

时间:2016-07-01 15:34:37

标签: android distance

是否考虑了高度变化?

我的意思是,如果我从这个三角形的左顶点开始并在右上顶点结束,它是否返回距离a或b?

double distanceInMetersFloat = initialPosition.distanceTo(finalPosition);

在我的应用中,initialPosition和finalPosition都是高度位置(我使用Google Elevation API设置它们)。

根据谷歌的说法:

  

使用WGS84椭圆体定义距离。

但你可以在有或没有高度的情况下做到这一点。

enter image description here

1 个答案:

答案 0 :(得分:3)

计算Location.distanceTo时不考虑海拔高度。

你可以这样测试:

Location location1 = new Location("");
location1.setLatitude(40);
location1.setLongitude(-4);
location1.setAltitude(0);

Location location2 = new Location("");
location2.setLatitude(30);
location2.setLongitude(-3);
location2.setAltitude(0);

Location location3 = new Location("");
location3.setLatitude(30);
location3.setLongitude(-3);
location3.setAltitude(100);

Log.e("Without altitude", ""+location1.distanceTo(location2));
Log.e("With altitude", ""+location1.distanceTo(location3));
Log.e("Different altitude", ""+location2.distanceTo(location3));

这是输出:

  

E/Without altitude﹕ 1113141.5

     

E/With altitude﹕ 1113141.5

     

E/Different altitude﹕ 0.0