两个Lat / Lng点之间的Google Map距离计算?

时间:2013-01-16 17:38:31

标签: algorithm google-maps distance calculator postal-code

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

4 个答案:

答案 0 :(得分:1)

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

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

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

(当然我还需要包括额外的/必需的'.js')

答案 1 :(得分:0)

"最佳"是一个非常模糊的标准。如果你能够假设地球是一个完美的球体,那么你需要一个简单的公式来表示大圆距离。请参阅示例the Wikipedia article。有了这个假设,你的距离就会减少不到0.5%。

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:-1)

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