2013-10-02 36 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'。 –