我在android中制作地图应用程序,我想在地图上获得2个位置,并查看它们之间的距离。我已将当前位置作为“位置”变量。然而另一个地方被保存为两个变量:double lat,lng;
我查了一下互联网,发现这个方法有帮助:
float distance = myLocation.distanceTo(temp);
问题是我所拥有的“临时”不是“位置”,而是两个不同的双打。
有没有办法将它们转换为位置?
PS。代码我试过但没有用:
Location temp = null;
temp.setLatitude(23.5678);
temp.setLongitude(34.456);
float distance = location.distanceTo(temp);
问题:
空指针访问:变量temp在此位置只能为null
答案 0 :(得分:31)
在访问其成员之前,您必须实例化Location
。例如
Location temp = new Location(LocationManager.GPS_PROVIDER);
temp.setLatitude(23.5678);
temp.setLongitude(34.456);
float distance = location.distanceTo(temp);
答案 1 :(得分:4)
或者,您可以使用静态方法Location.distanceBetween()获取距离而无需实例化Location对象。
float[] results = new float[1];
Location.distanceBetween(1, 2, 2 , 2, results);
public static void distanceBetween(double startLatitude,double startLongitude,double endLatitude,double endLongitude,float [] 的结果)强>
计算的距离存储在结果[0]中。如果结果长度为2 或者更大,初始方位存储在结果1中。如果结果 长度为3或更大,最终方位存储在结果[2]中。
参数
startLatitude 起始纬度
startLongitude 起始经度
endLatitude 结束纬度
endLongitude 结束经度
结果用于保存结果的浮点数组