0

我在下面得到了一个代码片段,用于显示来自谷歌地图 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);

我试过你的建议,但多边形没有显示。我一定是哪里错了。感谢大家提供任何进一步的帮助。

4

1 回答 1

1

您正在使用“旧”样式语法。如果要设置 FusionTablesLayer 的样式,则需要使用文档中的语法

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);
于 2012-10-11T15:14:47.533 回答