2012-04-27 42 views
1

第一次海報,我知道我忽略/不考慮一些基本的東西,但我不知道我不知道什麼...從Fusion表格數據創建的圓形對象數組填充谷歌地圖

嘗試使用Fusion Tables來填充Google Maps API圈子對象數組並將它們放置在地圖上。

目前我能硬編碼陣列像這樣:

citymap['Dane'] = { 
    center: new google.maps.LatLng(43.10599621690524, -89.38682556152344), 
    population: 5000000 
}; 

...然後把它們放在一個map

而且我能夠從Fusion Tables中返回JSON,循環並創建我認爲是數組和display it,但我無法使圓對象出現。

任何意見,我需要谷歌/學習將不勝感激。提前致謝。

Chris K.

回答

0

下面是使用新的受信任的測試API生成多邊形顯示在地圖上的例子:

https://developers.google.com/fusiontables/docs/samples/mouseover_map_styles

的邏輯應該是相似的,但不是一個多邊形,您將創建一個Circle:

new google.maps.Circle({ 
    center: new google.maps.LatLng(<lat>, <lng>), 
    strokeColor: "#FF0000", 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: "#FF0000", 
    fillOpacity: 0.35, 
    map: map, 
    radius: <radius> 
}); 
0

想要查看Circle類;它提供了一種創建圓形形狀並將它們放置在地圖上的簡單方法。好吧,所以我看到你已經找到了形狀類,所以你很好。

我覺得你的問題是,你正在轉向到一切你處理循環的字符串:

citymap = {}; 
for (var i = 0; i < data.table.rows.length; i++) { 
    citymap += 'citymap[\'' + data.table.rows[i][0] + '\'] = {' + 
     'center: new google.maps.LatLng(' + data.table.rows[i][1] + '),' + 
      'population: 2842518};'; 
} 

我想你想的代碼看起來更像是這樣的:

citymap = new Array(); 
for (var i = 0; i < data.table.rows.length; i++) { 
    var circleData = { 
     center: new google.maps.LatLng(data.table.rows[i][1]); 
     position: 2842518 
    } 
    citymap.push(circleData); 
} 

我意識到我有留下了一些其他數據,但你明白了。我相信你的主要問題是你把代碼串起來了。