如何将lat lng转换为Location变量?

时间:2015-06-28 11:12:32

标签: android google-maps-android-api-2

我在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

2 个答案:

答案 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 结束经度

     

结果用于保存结果的浮点数组