我正在通过Google Maps API(版本3)开发应用程序。如何通过Google Maps Javascript API3获得2点之间的距离?
我有2 google.maps.LatLng
对象名为loc1
和loc2
。
我如何计算他们之间的距离在说米?
我试过用这个question的各种技巧将纬度/经度测量转换成米。但是,我质疑我的实施的可靠性。
我也尝试过实现一个距离矩阵,但我认为距离矩阵是很多工作只是为了计算2点之间的距离。
谢谢!
我正在通过Google Maps API(版本3)开发应用程序。如何通过Google Maps Javascript API3获得2点之间的距离?
我有2 google.maps.LatLng
对象名为loc1
和loc2
。
我如何计算他们之间的距离在说米?
我试过用这个question的各种技巧将纬度/经度测量转换成米。但是,我质疑我的实施的可靠性。
我也尝试过实现一个距离矩阵,但我认为距离矩阵是很多工作只是为了计算2点之间的距离。
谢谢!
听起来很简单,我建议几何库,
https://developers.google.com/maps/documentation/javascript/reference#spherical
computeDistanceBetween(from:LatLng, to:LatLng, radius?:number)
从我的经验,结果以米为单位。请记住在标签中添加可选的几何库
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false">
</script>
谢谢你,'computeDistanceBetween'可靠地工作。 – dangerChihuahua007 2012-03-19 02:23:05
计算两点之间的距离基本上归结为毕达哥拉斯(平方和等)。然而,这并不适用于Lon(它是球体上的坐标)。我所做的是将Lat值转换为平坦的本地地图网格。然后我可以使用pythagoras来计算这些点之间的距离。我已经在Stack Overflow here上发布了这个消息。这将有你需要的所有代码。
亲爱的我。转换为(比如说)OSGB比使用正弦计算来获得距离的工作量要大得多,正如几何库所做的那样。使用几何库会使一切变得简单 - 正弦波计算可能会非常棘手。 – 2012-03-18 20:12:27
基本上我的观点是,一旦你完成了你的转换,一切都是简单的三角形几何。通常在绘图应用程序中,无论如何都需要将坐标转换为本地地图网格。是的,我的解决方案不涉及几何库。 – 2012-03-21 19:33:51
你的问题有点模棱两可。
我的意思是 - 当你说的距离,也意味着在一条直线上
如果它是您需要的直线距离,那么最好使用haversine实现。 否则,您需要向google方向服务请求方向,指定“运输方式”。
Google的距离矩阵API应该有助于解决这个问题。它也考虑驾驶/步行距离。选中此链接https://developers.google.com/maps/documentation/distance-matrix/ – Sriram 2016-12-03 01:54:30
完成后,您可以使用提供的地图在一条直线上测试distance between two points。它会给你一个视觉和距离。
这有帮助吗? http://stackoverflow.com/questions/1502590/calculate-distance-between-two-points-in-google-maps-v3 – vascop 2012-03-18 19:06:08