在 Android 中创建带有经纬度的 Location 对象

我有一个程序,其中的位置经纬度值存储在一个数据库中,我下载。

我想知道这些坐标和我当前位置之间的距离。

Location 类有一个简单的方法来查找两个 Location 对象之间的距离,所以我想我应该用坐标创建一个 Location 对象,然后调用这个方法。

有什么简单的方法吗?此外,如果有另一个可靠的,相当简单的方程,不会杂乱的东西太多,这将工作了。谢谢。

(android.Location. Location)

100170 次浏览

您可以使用 他们的构造者创建位置,然后设置纬度和经度值。

final Location location = new Location("yourprovidername");
location.setLatitude(1.2345d);
location.setLongitude(1.2345d);

假设您已经有一个具有当前位置的位置对象。

Location targetLocation = new Location("");//provider name is unnecessary
targetLocation.setLatitude(0.0d);//your coords of course
targetLocation.setLongitude(0.0d);


float distanceInMeters =  targetLocation.distanceTo(myLocation);

我再次回答这个问题,因为很多像我一样的人不知道 "providername"实际上是什么。下面的代码回答了这个问题:

Location location = new Location(LocationManager.GPS_PROVIDER);
location.setLatitude(23.5678);
location.setLongitude(34.456);

在这里,我使用 LocationManager.GPS_PROVIDER作为提供程序名称。