2012-02-11 3 views
0

私はFusion Layerをスタイリングする際にいくつかの問題を抱えていましたが、実際には あなたの助けに感謝します。 私はMaps APIを使用したFusionTableLayerの動的スタイリング

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

これは正常に動作として定義されたデフォルトのスタイリングを持つ層を追加します。次に、このレイヤーに対してクリックリスナーが設定されます。 ストーリーは次のようになります。ユーザーがマップ上のフィーチャーをクリックします。その プロパティが与えられた値(例えば、フォーム内の値)と等しい場合、この フィーチャは残りのフィーチャカラーとは異なるfillColorを取得します。

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はコードミスを報告しないので、構文はokです。

+0

あなたのページ全体がホストされているので、試してデバッグすることができますか?あるいは、あなたはjsFiddleを置くことができますか? –

+0

http://jsfiddle.net/9Rayd/3/にコードをアップロードしました。それが動作することを望む、以前はそれを使用したことはありません。 –

答えて

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 
     }} 
]); 

デバッガはエラーを報告しませんでしたが、それは私を混乱させるものでした。

関連する問題