2012-09-16 90 views
0

我想要得到多邊形的路徑,然後將它們設置爲另一個多邊形。谷歌地圖setPaths from getPaths座標

newpoly = new google.maps.Polygon({ 
       paths:poly.getPaths() 
      }); 

這是不是假設工作?它在控制檯中給了我這個錯誤。對於構造函數參數0

值無效:[對象的對象]

+0

你能表現出一點更多的代碼,你必須初始化你的聚變量? – Cdeez

回答

1

嘗試添加以下實例化Polygon對象

var triangleCoords = [ 
    new google.maps.LatLng(25.774252, -80.190262), 
    new google.maps.LatLng(18.466465, -66.118292), 
    new google.maps.LatLng(32.321384, -64.75737), 
    new google.maps.LatLng(25.774252, -80.190262) 
    ]; 

現在使用你的代碼,並更換poly.getPaths前() - 假設你的代碼的其餘部分工作。

newpoly = new google.maps.Polygon({ 
       paths:triangleCoords //there are probably more method to add here 
      }); 

如果它工作,那麼你知道poly.getPaths()有什麼問題。以此爲參考https://developers.google.com/maps/documentation/javascript/overlays#PolygonOptions

請記住,我們只能使用提供的代碼來制定解決方案。

+0

它的工作方式 – user969724

1

這將有助於如果你能顯示的多邊形對象的代碼,如果poly.getPaths()返回任何東西。所有我可以調用它來詳細調試,如下所示:

  1. 如果您註釋路徑,您是否會遇到任何錯誤:poly:Paths();
  2. Console.log(poly);返回一個谷歌地圖多邊形?
  3. Console.log(poly.getPaths())返回一個路徑數組?
  4. 如果是,您可以嘗試從poly.getPaths創建一個數組,然後將其傳遞給newpoly。
0

獲取第一多邊形的COORDS這樣(假設兩個多邊形已創建):

  //store polygon path 
      var vertices = firstPolygon.getPath(); 
      // Iterate over the vertices. 
      pathOfFirstPolygon = []; 
      for (var i =0; i < vertices.getLength(); i++) { 
       var xy = vertices.getAt(i); 
       item = {}; 
       item["lat"] = xy.lat(); 
       item["lng"] = xy.lng(); 
       pathOfFirstPolygon.push(item); 
      }; 

      //Set path of the second polygon 
      secondPolygon.setPath(pathOfFirstPolygon);