【问题标题】:Geo Point vs Location地理点与位置
【发布时间】:2011-08-27 18:59:45
【问题描述】:

这可能是一个菜鸟问题,但我不能 100% 确定。

如何使用地理点制作位置对象?我想用它来获取两点之间的距离。 我已经找到了一个帖子,上面写着

Location loc1 = new Location("Location"); 
loc.setLatitude(geoPoint.getLatitudeE6);
loc.setLongitude(geoPoint.getLongitudeE6);

Location loc2 = new Location("Location2");
loc2.setLatitude(geoPoint.getLatitudeE6);
loc2.setLongitude(geoPoint.getLongitudeE6);

然后我会使用 distanceTo() 来获取两点之间的距离。

我的问题 Providername 有什么用? ...新位置(“这里是什么???”) 那么我必须先定义一个提供者还是什么? 我想在 for() 中使用此代码在更多 GeoPoints 之间进行计算。 顺便说一句 - 我必须将 E6 值转换回正常值?

【问题讨论】:

  • 供应商是 GPS 或网络... GPS 是准确的,但可能需要一些时间,而网络与之相反... 是的,您必须设置供应商才能获得 gps 修复。

标签: android location distance geo


【解决方案1】:

不完全是

loc.setLatitude() 采用双纬度。所以正确的代码是:

  loc.setLatitude( geoPoint.getLatitudeE6() / 1E6);

Location() 构造函数采用所使用的 GPS 提供程序的名称。它可以是 LocationManager.GPS_PROVIDER 或 NETWORK_PROVIDER 以及其他值

【讨论】:

  • 好的,所以我需要先定义一个位置管理器 - 或者我可以将这个“LocationManager.GPS_PROVIDER”直接添加到括号中,如Location loc = new Location(LocationManager.GPS_PROVIDER)
  • 是的,您不需要 LocationManager。是的,你就是这样做的。
【解决方案2】:

要获取两点之间的距离,您可以使用Location 类,更准确地说是distanceBetween 静态方法。

文档非常清楚它的作用,但这里有一个快速代码示例:

float[] results = new float[3];
Location.distanceBetween(destLatitude, destLongitude, mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude(), results);
// result in meters, convert it in km
String distance = String.valueOf(Math.round(results[0] / 1000)) + " km");

要将分/秒转换为度数,您可以使用 Location 类的convert 方法。

【讨论】:

  • 如果答案适合您,请将您的问题标记为已解决。
【解决方案3】:
Log.i("MapView", "Map distance to mark (in meters): " + myLocation.distanceTo(GeoToLocation(point)) + "m");

然后

public Location GeoToLocation(GeoPoint gp) {
        Location location = new Location("dummyProvider");
        location.setLatitude(gp.getLatitudeE6()/1E6);
        location.setLongitude(gp.getLongitudeE6()/1E6);
        return location;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    相关资源
    最近更新 更多