首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android使用Location对象获取距离

Android使用Location对象获取距离
EN

Stack Overflow用户
提问于 2011-03-16 00:46:43
回答 4查看 1.7K关注 0票数 3

我想获取GPS返回的一系列坐标样本,并计算它们之间的(直线)距离,这样我就可以通过Excel绘制距离图。我看到了Location类的方法distanceBetweendistanceTo,但我担心它们不会返回直线距离。

有谁知道这些方法返回的距离是多少,或者是否有任何方法可以根据Location类返回的纬度/经度值来计算直线距离?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-16 01:20:08

谷歌搜索将提供解决方案,如果你以某种方式希望自己做这个计算。例如,Haversine方法:

代码语言:javascript
复制
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad(); 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
        Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
        Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;

被报告为here。请注意,这是一条直线,没有考虑到标高等方面的不规则性。

票数 2
EN

Stack Overflow用户

发布于 2011-03-16 01:29:49

Stack Overflow用户

发布于 2016-12-09 12:23:43

下面是我的代码

代码语言:javascript
复制
float[] result=new float[1];
        if(cordenatalar.size()>1)
        {

            LatLong add_kor=(LatLong)cordenatalar.get(cordenatalar.size()-1);
            Location.distanceBetween(add_kor.getLat(), add_kor.getLongg(), location.getLatitude(), location.getLongitude(), result);
            kilometr+=result[0];
            //KMTextView.setText(String.valueOf(kilometr));
        }
        KMTextView.setText("sss: "+String.valueOf(cordenatalar.size()+"  res: "+kilometr+" metr"));
        cordenatalar.add(new LatLong(location.getLatitude(), location.getLongitude()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5315015

复制
相关文章

相似问题

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