【发布时间】:2011-05-18 00:43:19
【问题描述】:
我正在开发一个桌面应用程序,我有两个点(纬度、经度)。我怎样才能得到这两点之间的距离?我查看了 API,其中大多数是基于 javascript 或 web 的。我不是在开发网页。我怎样才能在java中做到这一点?
我想要的是公路距离,而不是直线距离
【问题讨论】:
标签: java google-maps-api-3 gis
我正在开发一个桌面应用程序,我有两个点(纬度、经度)。我怎样才能得到这两点之间的距离?我查看了 API,其中大多数是基于 javascript 或 web 的。我不是在开发网页。我怎样才能在java中做到这一点?
我想要的是公路距离,而不是直线距离
【问题讨论】:
标签: java google-maps-api-3 gis
如果你有纬度和经度,你可以使用Haversine formula 来计算它们之间的距离——假设你想要“直线”距离。
编辑:好的,现在您实际上已经告诉我们您想要什么,我怀疑您需要使用Directions API。您需要使用参数向适当的 URL 发出 Web 请求,指定 XML 或 JSON 输出 - 然后您需要对其进行解析。
请注意“JSON”!=“基于 Javascript”。将 JSON 视为一种数据序列化格式,恰好是可执行的 Javascript。
【讨论】:
一个快速的谷歌给了我这个:http://www.postalcodeworld.com/samples/distance.java.html 看起来这是一个很好的实现,使用我认为的 Haversine 公式。
【讨论】:
上面的这个 Great Circle Distance 代码对于大多数应用来说可能都可以。但是,如果您需要很高的精度,请注意,由于地球不是一个完美的球体,它在某些极端情况下可能会失败。在这种情况下,您谈论的是更复杂的算法。
【讨论】: