読者です 読者をやめる 読者になる 読者になる

もなかアイスの試食品

「とりあえずやってみたい」そんな気持ちが先走りすぎて挫折が多い私のメモ書きみたいなものです.

(Openlayers2)Labelの表示・非表示を実装する。

今回も私大好きOpenLayersの話

今回は描画したVectorのラベルを表示したり、非表示にしたりする方法について

Vectorのラベルを表示する方法は公式のサンプルを参照すると分かりやすいと思う。

OpenLayersでラベルを表示するサンプル
OpenLayers Labeled Features Example

「ラベルの表示・非表示」をするような公式のサンプルが見つからなかったので、色々試してみた結果出来るようになった

↓ラベルの表示・非表示サンプル

ポイントは以下の点

  1. ラベル表示用のStyleMapとラベル非表示用のStyleMapを用意する。
  2. 切り替えイベント発生時に、StyleMapを変更する。
  3. 再描画する。

最後の再描画をやらないと、地図の移動、ズームをしないとラベルが残ったままになる。(非表示→表示に切り替えた場合は移動・ズームをするまでラベルが表示されない。)

問題点はラベル表示用のStyleMapとラベル非表示用のStyleMapを用意するので、レイヤ数が多くなるとソースが縦に長くなる点かな・・・

もっといい方法ないかなー