我想以gps计算距离

时间:2011-07-01 20:47:20

标签: java

我目前正在开发一个gps项目。我读过一个xml文件,我可以打印出minLat,maxLat,minLon,maxLon形式的经度和纬度范围。方式,关系和节点属性,如id,user,uid,version,visible,changeset和timestamp。我也可以打印出标签键和值以及参考。我现在的问题是我想用纬度和经度计算两点之间的距离,我不清楚它是如何做到的,以及我打印到控制台的哪些属性我真的需要这样做。所以,我需要一些帮助!

2 个答案:

答案 0 :(得分:1)

您需要使用Haversine公式计算此值。 这是一个perl脚本的片段,正是这样做,我建议看看它以获得更好的解释:http://jan.ucc.nau.edu/~cvm/latlon_formula.html

以下是对问题的更深层解释:http://www.movable-type.co.uk/scripts/latlong.html

Haversine公式:

 a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2) 
 c = 2.atan2(√a, √(1−a)) 
 d = R.c    

其中R是地球的半径(平均半径= 6,371km);请注意,角度需要以弧度为单位才能传递给trig函数!

(来源是上面的链接)

答案 1 :(得分:0)

Calculate distance in meters when you know longitude and latitude in java

这个标记为已回答,并且有一个示例函数。