2011-10-20 181 views
0

我正在從XML工作表創建一個多邊形。我收到此錯誤:Google Maps API 3 Javascript添加多邊形

消息:無效的值構造函數的參數0:(15.850885,-97.058372)

這裏是我的代碼:

downloadUrl(searchUrl, function(data) { 
    var xml = parseXml(data); 
    var triangleNodes = xml.documentElement.getElementsByTagName("triangle"); 
    for (var i = 0; i < triangleNodes.length; i++) { 
    var trianglelatlng = new google.maps.LatLng(
      parseFloat(triangleNodes[i].getAttribute("triangle_lat")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lng")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lat1")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lng1")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lat2")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lng2")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lat")), 
      parseFloat(triangleNodes[i].getAttribute("triangle_lng"))); 
      createTriangle(trianglelatlng); 
      } 

正如你可以在這裏看到我在我的構建多邊形數組。

現在我試圖將多邊形添加到我的地圖:

function createTriangle(trianglelatlng) { 
    var html2 = "<div id='infodiv'>HelloMatt</div>"; 
    var triangle = new google.maps.Polygon({  
     paths: trianglelatlng,  
     strokeColor: "#FF0000",  
     strokeOpacity: 0.8,  
     strokeWeight: 2, 
     zIndex: 7,  
     fillColor: "#FF0000",  
     fillOpacity: 0.35 
     }); 

triangle.setMap(map); 

但是如果我添加靜態數組如下面多邊形將顯示在地圖上。

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) 
    ]; 

我也在全局變量中聲明瞭var三角形。 我確定問題在於我構建數組的方式。希望有人已經構造的多邊形,並可以在你正確地指出我在正確的方向

回答

1

我認爲,在第一種情況下你的VAR triangleCoords只創建爲LatLng元素(見here),而你需要一組LatLng,用你描述的第二種方式做出。嘗試將for循環中的每個點添加到預定義的數組中並使用它。

希望它有幫助

相關問題