我在下方有一个代码片段,用于显示Google地图FusionTablesLayer中某个区域的边界。显示多边形但从未应用预期的样式。我的代码出了什么问题?请帮我。谢谢你。
var FT_TableID=420419;
var ftoptions = {
suppressInfoWindows:true,
styles: [
{polygonOptions: {fillColor:'#0040FF',fillOpacity:0.1,strokeColor:'#FF0000',strokeWeight:2,strokeOpacity:0.6}}
]
};
var layer = new google.maps.FusionTablesLayer(FT_TableID,ftoptions);
layer.setQuery('SELECT \'kml_4326\' FROM 420419 WHERE \'name_0\' = \'Vietnam\';');
layer.setMap(theMap);
感谢您的建议。让我进一步澄清我的情况,为什么我必须以这样的方式编写代码:我为数据库中的每个区域存储了ftquery(以原始格式:SELECT ... FROM ...)并将其加载以绘制区域边界
var ftoptions = {...};
var layer = new google.maps.FusionTablesLayer(tableid);
//to load custom styles, but not work, same for setOptions or set('styles',styles);
layer.setValues(ftoptions);
var ftquery = '';//this is loaded from database
layer.setQuery(ftquery);
layer.setMap(theMap);
我尝试了你的建议,但多边形没有显示。我在某处肯定是错的。谢谢大家的进一步帮助。
答案 0 :(得分:1)
您正在使用“旧”样式语法。如果要为FusionTablesLayer设置样式,则需要使用documented syntax
var ftoptions = {
query: {
from: tableid,
select: 'kml_4326',
where: "name_0 = 'Vietnam'"
},
suppressInfoWindows:true,
styles: [
{polygonOptions: {fillColor:'#0040FF',fillOpacity:0.1,strokeColor:'#FF0000',strokeWeight:2,strokeOpacity:0.6 }}
]
};
var layer = new google.maps.FusionTablesLayer(ftoptions);
layer.setMap(theMap);