0

我在设置 Fusion Layer 样式时遇到了一些麻烦,非常感谢您的帮助。我添加了一个默认样式定义为的图层

layer.set('styles', [{ 
                 polygonOptions: { 
                         fillColor: '#FFFFFF', 
                         fillOpacity: 1, 
                         strokeColor: '#000000', 
                         strokeWeight: 1 
                 } 
         }]); 

这工作正常。然后为该层设置一个点击监听器。故事是这样的:用户点击地图上的一个特征。如果它的属性等于给定的值(例如在表单中),我希望这个功能获得与其他功能不同的填充颜色。

google.maps.event.addListener(okresy,'click', function(ev) { 
                 nazev = ev.row.NAZEV.value; 
                         layer.set("styles", [{ 
                                 polygonOptions: { 
                                         fillColor: '#FFFFFF', 
                                         fillOpacity: 1, 
                                         strokeColor: '#000000', 
                                         strokeWeight: 1 
                                 }, 
                                 where: "'NAZEV' = '"+nazev+"'", 
                                 polygonOptions : { 
                                         fillColor : '#008C00', 
                                         fillOpacity : 1, 
                                         strokeColor : '#000000', 
                                         strokeWeight : 1 
                                 } 
                         }]); 

}); 

所以我所做的是将颜色#008C00 设置为单击的功能以及我分配与开始时相同的样式的所有其他功能。但是,无论我做什么,我都做不到。单击某些功能时,其余功能将获得默认的半透明红色。我错过了什么吗?Opera Dragonfly 不报告任何代码错误,所以我想语法没问题。

4

1 回答 1

2

哈,问题解决了!我实际上需要更像这样的东西:

okresy.set("styles", [{ 
        polygonOptions: {
            fillColor: '#FFFFFF', 
            fillOpacity: 1, 
            strokeColor: '#000000', 
            strokeWeight: 1 }}, 
        {where: "'NAZEV' = '"+nazev+"'", 
         polygonOptions : {
            fillColor : '#008C00', 
            fillOpacity : 1, 
            strokeColor : '#000000', 
            strokeWeight : 1 
         }} 
]);

调试器没有报告任何错误,这让我很困惑。

于 2012-02-11T20:49:38.707 回答