计算gps点之间的步行距离

Posted

技术标签:

【中文标题】计算gps点之间的步行距离【英文标题】:calculate walking distance between gps points 【发布时间】:2016-10-05 12:44:27 【问题描述】:

我有一对 gps 坐标(经纬度),我想计算它们之间的步行距离。即使用道路数据(来自谷歌地图或其他开源)计算两个 GPS 点之间最短路线的公里数。我可以使用谷歌地图来做到这一点,但我有数千对,所以我想找到一种更自动化的方式。

有人知道怎么做吗?

【问题讨论】:

请看这篇文章:- movable-type.co.uk/scripts/latlong.html 这可能更有用:- ***.com/questions/27928/… 感谢@BharatNakum 的回答。不幸的是,这不是我所追求的。我已经稍微编辑了这个问题以澄清这一点。 【参考方案1】:

我不太确定您在寻找什么。在这里分享一些想法:

1) 如果要计算纬度/经度两点之间的大圆距离,可以使用半正弦公式距离。 JS 中的示例:

function Haversine_distance(lat1,lon1,lat2,lon2) 
    var R = 6371; // in km
    var x1 = lat2 - lat1;
    var dLat = x1.toRad();
    var x2 = lon2 - lon1;
    var dLon = x2.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;
    return d*1.0;
;

2) 如果您需要更准确的距离计算,您需要一些校正因子,因为地球不是一个完美的球体。将您拥有的位置投影到适当的投影并在那里计算距离总是更容易。例如,使用 proj4js 投影到 UTM 区域,然后计算距离以减少不准确。

3) 如果你说的是城市的步行距离,那就是网络距离。需要先建立您的道路网络,然后从那里进行计算。如果没有道路网络,仅给出点位置将不足以计算步行距离。道路网络的商业数据可从 TeleAtlas 等处获得。也可以通过 OpenStreetMap 找到免费数据。

【讨论】:

感谢您的回复。不幸的是,这不是我想要的。我试图澄清这个问题。 退出不幸的是我没有明白你的想法。如果您可以通过谷歌手动完成,并且您正在寻找一些现有的工作/工具来做同样的事情,我很抱歉我没有快速的答案。但是如果你可以做一些编码,最好看看这个developers.google.com/maps/documentation/distance-matrix/intro的google api文档@ 谷歌地图使用的是我提到的 TeleAtlas 道路网络数据,它不是“免费的”。请在将其与您的密钥一起使用之前阅读该术语。

以上是关于计算gps点之间的步行距离的主要内容,如果未能解决你的问题,请参考以下文章

python 计算两个GPS点之间的距离。

我如何计算Java中两个gps点之间的距离?

计算 n 个 GPS 点之间的最短距离

如何使用 data.table 有效地计算一个数据集中的 GPS 点与另一个数据集中的 GPS 点之间的距离

如何计算两个GPS坐标点的距离?

在 iOS 中计算步行距离