【问题标题】:Calculate distance using google map given a latitude and longitude给定纬度和经度,使用谷歌地图计算距离
【发布时间】:2011-05-18 00:43:19
【问题描述】:

我正在开发一个桌面应用程序,我有两个点(纬度、经度)。我怎样才能得到这两点之间的距离?我查看了 API,其中大多数是基于 javascript 或 web 的。我不是在开发网页。我怎样才能在java中做到这一点?

我想要的是公路距离,而不是直线距离

【问题讨论】:

    标签: java google-maps-api-3 gis


    【解决方案1】:

    如果你有纬度和经度,你可以使用Haversine formula 来计算它们之间的距离——假设你想要“直线”距离。

    编辑:好的,现在您实际上已经告诉我们您想要什么,我怀疑您需要使用Directions API。您需要使用参数向适当的 URL 发出 Web 请求,指定 XML 或 JSON 输出 - 然后您需要对其进行解析。

    请注意“JSON”!=“基于 Javascript”。将 JSON 视为一种数据序列化格式,恰好是可执行的 Javascript。

    【讨论】:

    • 最近在GIS Stack Exchange 网站上提出了这个问题。迄今为止得票最多的答案也建议使用半正弦公式。
    • 我其实不想计算直线距离..我要道路距离
    • 很抱歉,所以在这个 XML maps.googleapis.com/maps/api/directions/… 中,哪一个是总距离...有一堆距离标签
    • @EquinoX:您可以将每个步骤中的值相加,或者只计算腿本身的距离。基本上,阅读文档。
    【解决方案2】:

    一个快速的谷歌给了我这个:http://www.postalcodeworld.com/samples/distance.java.html 看起来这是一个很好的实现,使用我认为的 Haversine 公式。

    【讨论】:

      【解决方案3】:

      上面的这个 Great Circle Distance 代码对于大多数应用来说可能都可以。但是,如果您需要很高的精度,请注意,由于地球不是一个完美的球体,它在某些极端情况下可能会失败。在这种情况下,您谈论的是更复杂的算法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多