首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地理位置与地理位置

地理位置与地理位置
EN

Stack Overflow用户
提问于 2011-05-18 14:17:53
回答 3查看 8.1K关注 0票数 2

这可能是一个新手问题,但我不是百分之百确定。

如何使用Geo points创建Location对象?我想用它来计算两点之间的距离。我已经找到一个帖子上面写着

代码语言:javascript
复制
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()来获得两点之间的距离。

我的问题是什么是提供商名称?...new位置(“这里是什么?”)那么,我是不是必须在此之前定义一个提供程序呢?我想在for()中使用这段代码来计算更多的GeoPoints。顺便说一句,我必须将E6值转换回正常吗?

EN

回答 3

Stack Overflow用户

发布于 2011-05-18 14:39:49

不完全同意

loc.setLatitude()有两个纬度。所以正确的代码是:

代码语言:javascript
复制
  loc.setLatitude( geoPoint.getLatitudeE6() / 1E6);

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

票数 2
EN

Stack Overflow用户

发布于 2011-05-18 15:27:53

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

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

代码语言:javascript
复制
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方法。

票数 1
EN

Stack Overflow用户

发布于 2012-07-10 13:44:51

代码语言:javascript
复制
Log.i("MapView", "Map distance to mark (in meters): " + myLocation.distanceTo(GeoToLocation(point)) + "m");

然后

代码语言:javascript
复制
public Location GeoToLocation(GeoPoint gp) {
        Location location = new Location("dummyProvider");
        location.setLatitude(gp.getLatitudeE6()/1E6);
        location.setLongitude(gp.getLongitudeE6()/1E6);
        return location;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6040623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档