OpenlayersでSLDReaderを使ってスタイルを設定してみた

はじめに

OpenlayersのスタイルでSLD (Styled Layer Descriptor) が利用できないか、CahtGPT先生に問い合わせたところ、SLDReaderなるライブラリがあるとのことなので試してみました。

なぜSLD (Styled Layer Descriptor) か?

  1. OGC標準のサポート
    • SLDはOGC(Open Geospatial Consortium)の標準仕様であり、多くのGISソフトウェアで使用されています。私はGeoServerで利用されているのでかなり昔から知っていました。
  2. 柔軟なスタイル設定
    • 属性値に基づく条件付きスタイルや、複数ルールの適用など、高度なスタイル設定が可能です。GeoServerに詳しい利用方法が載っています。

SLDReaderとは

SLDReader は、SLD (Styled Layer Descriptor) ファイルを解析し、JavaScriptで扱いやすい形式に変換するためのライブラリです。このライブラリは、SLD形式で定義されたスタイル情報を読み取り、OpenLayersや他の地図ライブラリで使用できるスタイルに変換するために使用されます。
SLDReaderはオープンソースのライブラリで、MITライセンスのもとで公開されており、無料で利用できるとのこと。

SLDReaderの主な特徴

  1. SLD形式の解析
    • XML形式で記述されたSLDファイルを解析し、JavaScriptオブジェクトとして利用可能にします。
  2. OpenLayersとの統合
    • 解析したスタイル情報をOpenLayersのスタイルに変換するためのヘルパー機能を提供します。
  3. 軽量でシンプル
    • 必要最低限の機能を提供する軽量なライブラリで、扱いやすい設計です。
  4. ルールのサポート
    • SLD内のルール ( タグ) に基づいてスタイルを適用できます。例えば、属性値に応じたスタイル変更など。

使用例

サンプルなどを参考に、ハザードマップなどに利用される、浸水情報を表示してみました。

p_area_tsunami.txt

sldファイルの内容はxmlですが、txtとして読み込ますために、今回は拡張子を変えています。属性値をあえて日本語にしました。

jsコード

sldファイルを読み込まして、SLDReadeにてスタイルを解析し、SLDReader.createOlStyleFunction()で生成したOL用関数を、セットするだけです。

SLDReader導入後の地図

浸水情報が属性値で色分けされています。素晴らしい!

まとめ

これまでOpenLayersのStyle設定は、プログラムを駆使して色々やっておりましたが、
SLDReaderを使用することで、SLD形式のスタイルを簡単に扱えるようになりました。

また、OGC(Open Geospatial Consortium)の標準仕様である、SLDが利用できることは
プログラムの依存度が減り、地図のデザインやカスタマイズがより効率的になると思いました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする