2013-10-02 33 views
1

如何从polyLine中给定的百分比返回latLng值? 我花了一天的时间使用插值和单个节点。他们在那里做一个更简单的功能,做出了一些g work的工作吗?polyLine中的latLng百分比

Google maps API v3 谢谢!

回答

6

http://www.geocodezip.com/scripts/v3_epoly.js

为谷歌地图JavaScript API第2移植到v3的写入。 Documentation for the v2 version

有以下两种方法:

  • .Distance()返回聚路径
  • .GetPointAtDistance()返回一个的GLatLng在指定距离
    沿路径的长度。
    的距离以米为单位指定
    返回NULL如果路径比

这应该工作更短(如果包括脚本和折线变量为“折线”):

var latlng = polyline.GetPointAtDistance(polyline.Distance()*(desired percentage)/100); 

当然,如果你的多段线的长度没有变化,那么一旦每次你想要在多段线上找到一个点时使用它,计算长度会更有效率。

var polylength = polyline.Distance(); 
var latlng = polylength*(desired percentage)/100); 
+0

噢,非常感谢你!正是我需要的! –

+1

它确实返回(lat,lng),但该点不一定在绘制的PolyLine上。需要帮忙。 :( – anusreemn

+0

我已经尝试过这种方法,但在大多数情况下都适用,但在某些例子中,例如从美国到澳大利亚的路线会导致一些问题。显然,Google地图在太平洋上绘制了一条从美国到澳大利亚的线路,但此库假定这里的路线是在非洲画的,[Here](http://i60.tinypic.com/znwnpf.png)就是一个例子,你可以看到一架从印第安纳州起飞的飞机,美国没有遵循Google Maps的路线在这种情况下'GetPointAtDistance'方法给出了错误的'latlng'。 –