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