谷歌地图API: 获取服务器端折线的长度

3

我在mysql中有polyline数据,想用php测量其长度。我查看了距离矩阵api,但它需要origin_addresses 和 destination_addresses,而我没有这些值。

我发现 decodePolylineToArray gist,但当我解码我的polyline时,有很多值。如何测量polyline的长度?我使用php,如果您有其他语言的方法,我可以将其移植到php。

1个回答

0

对于折线中的每个路径,您需要使用Haversine公式: http://en.wikipedia.org/wiki/Haversine_formula

对于不同的编程语言,请搜索: https://www.google.ch/search?q=php+haversine+formula&aq=0&oq=php+Haversine&aqs=chrome.1.57j0l3j62l2.8586&sourceid=chrome&ie=UTF-8

这是JS手动计算两点之间距离的好样例Calculate distance between two points in google maps V3,但有一种更简单的方法:

google.maps.geometry.spherical.computeDistanceBetween(path.getAt(i), path.getAt(i+1));

看看这个示例: http://www-users.mat.umk.pl/~kaskader/polyline_simple.html 使用它。

希望对你有所帮助。


谢谢你的回答。如果我使用Haversine公式计算距离,是否与Google地图本地计算相等?是的,我知道JavaScript有很多快捷方式,但我在Web服务API中找不到更简单的解决方案。 - user1872364
使用Haversine公式将会给你相同的结果。你需要哪种编程语言? 基本上,你需要重写这个:https://dev59.com/J3I_5IYBdhLWcg3wK_o5#1502821 - kaskader
已经成功了。我使用了decodePolylineToArray的代码片段和这个网址http://pastebin.com/P711segA。非常感谢。 - user1872364

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接