【发布时间】:2012-11-26 17:13:11
【问题描述】:
我有一个融合表,其中包含代表 130 个城市的 130 个多边形的 kml 定义。我想将多边形填充颜色设置为存储在数组中的十六进制值,其中城市名称匹配。
这是我的代码存根,但填充颜色不起作用。有没有人对我如何管理这个有任何见解?
...
getFTData(table_id, 'Name', example_dataHandler);
...
function getFTData(table_id, col_list, successFunction) {
var query = "SELECT " + col_list + " FROM " + table_id;
var queryurl = encodeURI(queryUrlHead + query + queryUrlTail);
$.ajax({
type: "GET",
url: queryurl,
dataType: "jsonp", // return CSV FustionTable response as JSON
success: successFunction,
error: function () {alert("AJAX ERROR for " + queryurl ); }
});
}
function example_dataHandler(d) {
// get the actual data out of the JSON object
var rows = d.table.rows;
var row_count = 0;
layer = new google.maps.FusionTablesLayer({
query:
{
select: 'geometry',
from: '11KMJrKcQ4f729YGbcUoe4lvp66JKZhB0pJ-3w9k'
},
options:
{
suppressInfoWindows: true
}
});
for (var i = 0; i < rows.length; i++) {
// Per the expected columns
for(j=0; j < rows[i].length; j++)
{
styles: [{
where: "'Name' = '" + rows[i][j] + "'",
polygonOptions: {
fillColor: countyColors[row_count],
strokeColor: "#FFFFFF",
strokeWeight: 3
}
}]
}
row_count++;
}
layer.setMap(map);
}
【问题讨论】:
-
这是一次性操作吗?您可以从 FusionTable 中的列配置多边形的颜色。如果你的颜色少于五种,可以dynamically in your javascript。您的代码似乎加载了两次多边形,一次在 FusionTablesLayer 中,一次作为本机 Google Maps API v3 多边形(在查询的回调中)。
-
我不希望从 Fusion Table 列中设置颜色,但我可能不得不这样做。我收到一个 json 文件,其中包含每个自治市应具有的颜色。我还有一个 kml 文件,可以让我轻松地将其上传为融合表并将其放置在谷歌地图上。我只想正确地构建我的循环,以便将 kml 文件放在地图上并为城市着色。但是我这里没有做对。
-
您的表是公开的吗?你有定义颜色的 JSON 样本吗?考虑到这些细节,实施起来应该不会太难。
-
表是公开的(表ID在上面的代码中可以找到)。 json 文件位于newsinteractive.post-gazette.com/e2012laura/json/pcounty.json。
标签: jquery kml polygon google-fusion-tables