2015-10-05 70 views
0

我使用goMap Library,並與國家座標的本地數據庫,它工作得很好,如果我把座標直接轉換成代碼,但與Click事件我打電話以下方法來更新動態地圖:動態加載多邊形

$.getJSON('countries/name', function(data) { 
    $.each(data.cords, function (i, v) { 
    var cor = ''; 
     for (i = 0; i < v.length; ++i) { 
      cor += "{longitude: "+v[i].longitude+",latitude: "+v[i].latitude+"},"; 
     } 
    console.log(cor); 
      $.goMap.createPolygon({ 
       color: "#00CC00", 
       fillColor: '#00CC00', 
       fillOpacity: 0.2, 
       weight:  2, 
       coords: [cor] 
      }); 
    }); 
    }); 

我想填寫coords: [cor]所選國家的經度和緯度,並更新地圖,如果我爲coords: [cor]手動賦值,它運行良好,控制檯日誌中沒有錯誤。

回答

2

Coords必須{ latitude, longitude }不是一個連接字符串數組:

var cor = []; 
for (i = 0; i < v.length; ++i) { 
    cor.push({ 
    longitude: v[i].longitude, 
    latitude: v[i].latitude 
    }) 
} 

coords: cor //not coords : [cor] 
其實

,在我看來 - 但不能100%肯定,不知道到底是什麼 - 你可以馬上使用data.cords。如果你檢查它有明確的gomap sourcecreateOverlay約463行:

case 'polygon': 
    if (poly.coords.length > 0) { 
     for (var j = 0, l = poly.coords.length; j < l; j++) 
      overlay.push(new google.maps.LatLng(poly.coords[j].latitude, poly.coords[j].longitude)); 

     overlay = new google.maps.Polygon({ 
      map: this.map, 
      path: overlay, 
      strokeColor: poly.color ? poly.color : this.opts.polygon.color, 
      strokeOpacity: poly.opacity ? poly.opacity : this.opts.polygon.opacity, 
      strokeWeight: poly.weight ? poly.weight : this.opts.polygon.weight, 
      fillColor: poly.fillColor ? poly.fillColor : this.opts.polygon.fillColor, 
      fillOpacity: poly.fillOpacity ? poly.fillOpacity : this.opts.polygon.fillOpacity 
     }); 
    } 
     else 
      return false; 
    break; 

爲什麼首先使用gomap?似乎沒有添加任何東西或使任何東西更容易,只是另一個谷歌地圖v3包裝。

+0

謝謝你添加數組後它的作品,我有一個主題,它是與goMap庫功能齊全 – user969068