首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两地距离的计算

两地距离的计算
EN

Stack Overflow用户
提问于 2010-10-18 20:05:21
回答 3查看 1K关注 0票数 0

我有两个地方的纬度和经度。我可以在android中计算它们之间的距离吗?

EN

回答 3

Stack Overflow用户

发布于 2010-10-18 20:19:02

你正在寻找的是半正弦公式,它给出了球面上两点之间的距离,使用它们的纬度和经度。

哈维正弦公式:

R=地球半径(平均半径=6371千米)

lat= lat2 lat1Δlat =lat2 lat lat=Δ−lat

long= long2 long1Δ−

A=sin²(long lat/2)+ cos(lat1)*cos(lat2)*sin²(Δlong/2)

C= 2*atan2(√a,√(1−a))

D= R*c

在JavaScript中:

代码语言: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;

http://www.movable-type.co.uk/scripts/latlong.html

票数 4
EN

Stack Overflow用户

发布于 2010-10-18 20:13:40

Stack Overflow用户

发布于 2010-10-18 21:04:50

这就是您想要的接口:

http://developer.android.com/reference/android/location/Location.html#distanceBetween(double,%20double,%20double,%20double,%20float[])

(注:它是静态的.不需要Location对象实例)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3958923

复制
相关文章

相似问题

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