2011-10-20 136 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循环中的每个点添加到预定义的数组中并使用它。

希望它有帮助

相关问题