两个纬度/经度点之间的谷歌地图距离计算?

Posted

技术标签:

【中文标题】两个纬度/经度点之间的谷歌地图距离计算?【英文标题】:Google Map Distance Calculation between Two Lat/Lng Points? 【发布时间】:2013-01-16 17:38:30 【问题描述】:

最好的方法是什么(或)是否有谷歌的方法已经可以计算简单的Straight Line 两点之间的距离,基于 Lat/Lng 甚至邮政/邮政编码?

【问题讨论】:

您使用什么语言?或者你想用谷歌地图做到这一点? 【参考方案1】:

我自己从其他地方找到了答案。

是的,Google 已经有一个本地解决方案,位于: https://developers.google.com/maps/documentation/javascript/reference?hl=en-US#spherical

我需要做的就是调用方法: 'google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);'

(当然我还需要包含附加/必需的 '.js')

【讨论】:

从谷歌名称间距来看,我认为这是球面距离,而不是您在问题中所说的“直线”。 (我正在寻找同样的东西,但我想要一个便宜的计算)【参考方案2】:

“最佳”是一个相当模糊的标准。如果您能够假设地球是一个完美的球体,那么您需要一个简单的大圆距离公式。参见例如the Wikipedia article。有了这个假设,您的距离可能会相差不到 0.5%。

地球的实际形状其实是一个略oblate spheroid。这种形状的表面距离计算起来更复杂。请参阅 JavaScript 中的 Ed Williams' work。也许他会让你使用他的代码。如果没有,他会给出相关的参考资料。

【讨论】:

【参考方案3】:

免费的解决方案是http://ezcmd.com/apps/app_ezip_locator#ezip_locator_api

可以帮助您找到两个经纬度坐标之间的距离,以英里或公里为单位。

或者,你可以试试http://ezcmd.com/apps/app_geo_postal_codes#geo_postal_codes_api

【讨论】:

【参考方案4】:

“最佳”方式取决于几件事。您能否提供更多关于准确度和/或所需应用程序的背景信息? google.maps.DirectionsService 类将允许您使用 javascript 计算客户端的行驶距离,但如果您想要准确的直线距离,您可以使用 postgresql + postgis 服务器端。使用 lat/lng 计算准确的距离可能会因地球的不同投影而变得棘手,具体取决于所涉及的点范围和距离。

【讨论】:

抱歉,我的意思只是简单的straight 距离,无论其间的地理位置如何。 使用 lat/lng 坐标计算直线距离会使用一些相当复杂的公式,具体取决于所涉及的距离,但是在世界范围内获得“简单”准确直线距离的一种方法是计算距离在 postgresql + postgis 中查询 准确性有多重要?世界并没有你想的那么圆:-P 像,直接穿过地球? 除非将计算的点距离投影到 2d 平面上(为了使数学更简单),否则直线通常意味着要考虑地球的曲率

以上是关于两个纬度/经度点之间的谷歌地图距离计算?的主要内容,如果未能解决你的问题,请参考以下文章

在iphone中使用谷歌地图计算两个位置之间的距离

使用谷歌地图v3验证两点(纬度或地址)服务器端之间的路线距离

如何从 ionic 2 中的谷歌地图获取纬度和经度?

检查纬度和经度是不是在我的谷歌地图起点和终点范围内

Python查询一个城市的谷歌地图的经度和纬度

给定两个位置,如何从谷歌地图获取所有纬度和经度