大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

13
大きく歩した 大きく歩した 大きく歩した 大きく歩した MapServer6の新機能 の新機能 の新機能 の新機能 株式会社 オークニー 丹羽 2011/11/07

description

 

Transcript of 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

Page 1: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

大きく進歩した大きく進歩した大きく進歩した大きく進歩した

MapServer6の新機能の新機能の新機能の新機能

株式会社 オークニー

丹羽 誠

2011/11/07

Page 2: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

■■■■ MapServerとは・・・とは・・・とは・・・とは・・・

・オープンソースのアプリケーション・オープンソースのアプリケーション・オープンソースのアプリケーション・オープンソースのアプリケーション

・色々な・色々な・色々な・色々なGISデータを読み込んで地図を作成するプログラムデータを読み込んで地図を作成するプログラムデータを読み込んで地図を作成するプログラムデータを読み込んで地図を作成するプログラム

・・・・C言語で書かれています言語で書かれています言語で書かれています言語で書かれています

・・・・Webアプリケーションアプリケーションアプリケーションアプリケーション(CGI)としての動作が基本としての動作が基本としての動作が基本としての動作が基本

・・・・MapScript API を使うことで、を使うことで、を使うことで、を使うことで、JAVA、、、、PHP等の言語で使えます等の言語で使えます等の言語で使えます等の言語で使えます

・・・・1994年から開発がスタート年から開発がスタート年から開発がスタート年から開発がスタート

・・・・2004年に国際化対応して日本語の扱いが簡単に年に国際化対応して日本語の扱いが簡単に年に国際化対応して日本語の扱いが簡単に年に国際化対応して日本語の扱いが簡単に

・・・・2007年に年に年に年にOSGeoに合流に合流に合流に合流

・・・・2011年年年年5月月月月 MapServer 6.0リリースリリースリリースリリース

はじめにはじめにはじめにはじめに

Page 3: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

■■■■描画インターフェース描画インターフェース描画インターフェース描画インターフェースAPIの実装の実装の実装の実装

内部に描画用内部に描画用内部に描画用内部に描画用APIを作成してレンダラーの追加、修正を簡単にを作成してレンダラーの追加、修正を簡単にを作成してレンダラーの追加、修正を簡単にを作成してレンダラーの追加、修正を簡単に

⇒⇒⇒⇒まずはまずはまずはまずはCAIROで利用で利用で利用で利用

■■■■検索表現検索表現検索表現検索表現(EXPRESSION)パーサーの全面改定パーサーの全面改定パーサーの全面改定パーサーの全面改定

⇒⇒⇒⇒統一的な表現とわかりやすさ統一的な表現とわかりやすさ統一的な表現とわかりやすさ統一的な表現とわかりやすさ

OGC Filterでの処理の簡素化での処理の簡素化での処理の簡素化での処理の簡素化

■一回の問い合わせを一発で検索■一回の問い合わせを一発で検索■一回の問い合わせを一発で検索■一回の問い合わせを一発で検索

これまで一部2回行っていた検索を1回で済むようにこれまで一部2回行っていた検索を1回で済むようにこれまで一部2回行っていた検索を1回で済むようにこれまで一部2回行っていた検索を1回で済むように

⇒⇒⇒⇒検索、問い合わせの高速化検索、問い合わせの高速化検索、問い合わせの高速化検索、問い合わせの高速化

MapServer6.0 コアの刷新コアの刷新コアの刷新コアの刷新

Page 4: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

●●●●新描画エンジン(新描画エンジン(新描画エンジン(新描画エンジン(CAIRO)の追加の追加の追加の追加

●●●●KML出力のサポート出力のサポート出力のサポート出力のサポート

●複数のレイヤのフィーチャを結合(●複数のレイヤのフィーチャを結合(●複数のレイヤのフィーチャを結合(●複数のレイヤのフィーチャを結合(UNION))))

●重なり合うデータの表現(●重なり合うデータの表現(●重なり合うデータの表現(●重なり合うデータの表現(CLUSTER))))

●ビルトイン●ビルトイン●ビルトイン●ビルトインopenlayers ビューワビューワビューワビューワ

●表現力の向上(●表現力の向上(●表現力の向上(●表現力の向上(GEOMTRANSFORM、、、、STYLE))))

●●●●OGCリクエストの制御リクエストの制御リクエストの制御リクエストの制御

●●●●WFSの出力フォーマットの追加の出力フォーマットの追加の出力フォーマットの追加の出力フォーマットの追加

MapServer6.0の新機能の新機能の新機能の新機能

Page 5: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

新描画エンジンの追加新描画エンジンの追加新描画エンジンの追加新描画エンジンの追加

●●●●新描画エンジン新描画エンジン新描画エンジン新描画エンジンCAIROが追加されましたが追加されましたが追加されましたが追加されました

・・・・SVG,PDFの出力をの出力をの出力をの出力をCAIROに変更することで、より高速で複雑なイメージ出力が可能にに変更することで、より高速で複雑なイメージ出力が可能にに変更することで、より高速で複雑なイメージ出力が可能にに変更することで、より高速で複雑なイメージ出力が可能に

・・・・CAIROははははPNGも出力可能。見た目はも出力可能。見た目はも出力可能。見た目はも出力可能。見た目はAGGとほぼ同じだが、処理速度はとほぼ同じだが、処理速度はとほぼ同じだが、処理速度はとほぼ同じだが、処理速度はAGGより遅いより遅いより遅いより遅い

AGG CAIRO GD

Page 6: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

KML、、、、KMZ出力出力出力出力

●●●●KML,KMZの出力が追加されましたの出力が追加されましたの出力が追加されましたの出力が追加されました

Google Earth ややややGoogle Maps で利用できるで利用できるで利用できるで利用できるKML,KMZが出力できるようなりましたが出力できるようなりましたが出力できるようなりましたが出力できるようなりました

・ラベル出力は・ラベル出力は・ラベル出力は・ラベル出力はPOINTタイプで(タイプで(タイプで(タイプで(ANNOTATIONは非サポート)は非サポート)は非サポート)は非サポート)

・・・・Google Earth,Maps のフィーチャ数の制限に注意のフィーチャ数の制限に注意のフィーチャ数の制限に注意のフィーチャ数の制限に注意

OUTPUTFORMATNAME kmlDRIVER "KML"MIMETYPE "application/vnd.google-earth.kml+xml"IMAGEMODE RGBEXTENSION "kml"FORMATOPTION 'ATTACHMENT=mapserv.kml'FORMATOPTION "maxfeaturestodraw=200"

END

OUTPUTFORMATNAME kmzDRIVER "KMZ"MIMETYPE "application/vnd.google-earth.kmz"IMAGEMODE RGBEXTENSION "kmz"FORMATOPTION 'ATTACHMENT=mapserv.kmz'FORMATOPTION "maxfeaturestodraw=200"

END

マップファイルマップファイルマップファイルマップファイル

Page 7: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

複数のレイヤのフィーチャを結合複数のレイヤのフィーチャを結合複数のレイヤのフィーチャを結合複数のレイヤのフィーチャを結合

●●●●複数のレイヤのフィーチャを結合できる複数のレイヤのフィーチャを結合できる複数のレイヤのフィーチャを結合できる複数のレイヤのフィーチャを結合できるUNIONレイヤが追加されましたレイヤが追加されましたレイヤが追加されましたレイヤが追加されました

・異なる種類のデータ(シェープファイルと・異なる種類のデータ(シェープファイルと・異なる種類のデータ(シェープファイルと・異なる種類のデータ(シェープファイルとCSV等)のデータをひとまとめに等)のデータをひとまとめに等)のデータをひとまとめに等)のデータをひとまとめに

・・・・UNION化されたレイヤに対して、描画(スタイル)、問い合わせを一括して可能に化されたレイヤに対して、描画(スタイル)、問い合わせを一括して可能に化されたレイヤに対して、描画(スタイル)、問い合わせを一括して可能に化されたレイヤに対して、描画(スタイル)、問い合わせを一括して可能に

LAYERNAME "union-layer"CONNECTIONTYPE UNIONCONNECTION "layer1,layer2" PROCESSING "ITEMS=itemname1,itemname2”...

ENDLAYERCONNECTIONTYPE OGRNAME layer1...

ENDLAYERCONNECTIONTYPE SHAPENAME layer2...

END

マップファイルマップファイルマップファイルマップファイル

道路道路道路道路

鉄道鉄道鉄道鉄道

UNION

Page 8: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

データの重なりを表現データの重なりを表現データの重なりを表現データの重なりを表現

●●●●一定範囲内のデータをまとめて表示する一定範囲内のデータをまとめて表示する一定範囲内のデータをまとめて表示する一定範囲内のデータをまとめて表示するCLUSTERが追加されましたが追加されましたが追加されましたが追加されました

・・・・POINTタイプのレイヤ内にタイプのレイヤ内にタイプのレイヤ内にタイプのレイヤ内にCLUSTERを定義を定義を定義を定義

・指定距離以内のフィーチャをひとまとめにして別のシンボルで表示・指定距離以内のフィーチャをひとまとめにして別のシンボルで表示・指定距離以内のフィーチャをひとまとめにして別のシンボルで表示・指定距離以内のフィーチャをひとまとめにして別のシンボルで表示

LAYERNAME "駅"DATA ekiSTATUS ONTYPE POINTCLUSTER

MAXDISTANCE 20REGION "ellipse"

ENDLABELITEM "Cluster:FeatureCount"CLASSITEM "Cluster:FeatureCount“

CLASSNAME "駅(集合表示)"EXPRESSION ("[Cluster:FeatureCount]" != "1")

…ENDCLASS

NAME "駅(単一表示)"EXPRESSION "1“

…END

END

マップファイルマップファイルマップファイルマップファイル

拡大拡大拡大拡大

拡大拡大拡大拡大

数字は含まれる数字は含まれる数字は含まれる数字は含まれる

点の数点の数点の数点の数

Page 9: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

ビルトインビルトインビルトインビルトインOpenLayers ビューワビューワビューワビューワ

●●●●OpenLayers のビューワをテンプレートに指定して地図を簡易表示できるようになりましたのビューワをテンプレートに指定して地図を簡易表示できるようになりましたのビューワをテンプレートに指定して地図を簡易表示できるようになりましたのビューワをテンプレートに指定して地図を簡易表示できるようになりました

・地図の移動、拡大、縮小出来、簡単に表示の確認ができます・地図の移動、拡大、縮小出来、簡単に表示の確認ができます・地図の移動、拡大、縮小出来、簡単に表示の確認ができます・地図の移動、拡大、縮小出来、簡単に表示の確認ができます

・・・・MapServerののののCGIパラメータにパラメータにパラメータにパラメータにmode=browse&template=openlayers を追加するだけを追加するだけを追加するだけを追加するだけ

Page 10: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

表現力の向上表現力の向上表現力の向上表現力の向上

●●●●GEOMTRANSFORM、、、、STYLEに新しい表現方法が追加されましたに新しい表現方法が追加されましたに新しい表現方法が追加されましたに新しい表現方法が追加されました

・・・・GEOMTRANSFORMで矢印やノード、文字背景などが指定できるようにで矢印やノード、文字背景などが指定できるようにで矢印やノード、文字背景などが指定できるようにで矢印やノード、文字背景などが指定できるように

・・・・STYLEと属性との設定方法がより柔軟かつ自由に指定できるようにと属性との設定方法がより柔軟かつ自由に指定できるようにと属性との設定方法がより柔軟かつ自由に指定できるようにと属性との設定方法がより柔軟かつ自由に指定できるように

・・・・SIZEなどのパラメータで実数指定ができるようになどのパラメータで実数指定ができるようになどのパラメータで実数指定ができるようになどのパラメータで実数指定ができるように

矢矢矢矢印印印印

BBOX

節点位置節点位置節点位置節点位置

LAYER NAME "鉄道:節点位置"DATA tetsudokukanTYPE LINECLASSNAME "鉄道:節点位置"STYLEGEOMTRANSFORM "vertices"SYMBOL "square“

…END LAYER

NAME "鉄道:始点“DATA tetsudokukanTYPE LINECLASSNAME "鉄道:始点"STYLEANGLE AUTOGEOMTRANSFORM "start"SYMBOL "from“

…END

マップファイルマップファイルマップファイルマップファイル

Page 11: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

OGCリクエストの制御リクエストの制御リクエストの制御リクエストの制御

●●●●OGCサービスサービスサービスサービス(WMS,WFS,WCS,SOS)のリクエストに対して制御が出来るようになりましたのリクエストに対して制御が出来るようになりましたのリクエストに対して制御が出来るようになりましたのリクエストに対して制御が出来るようになりました

・マップ単位、レイヤ単位でサービス、リクエストに対して可・不可の制御が可能・マップ単位、レイヤ単位でサービス、リクエストに対して可・不可の制御が可能・マップ単位、レイヤ単位でサービス、リクエストに対して可・不可の制御が可能・マップ単位、レイヤ単位でサービス、リクエストに対して可・不可の制御が可能

・制御は・制御は・制御は・制御はMAP、、、、LAYERののののMETADATAでそれぞれ指定可能でそれぞれ指定可能でそれぞれ指定可能でそれぞれ指定可能

・リクエストの制御は、“・リクエストの制御は、“・リクエストの制御は、“・リクエストの制御は、“GetMap GetFeature GetFeatureInfo” が指定可能が指定可能が指定可能が指定可能

Layer

Name “Copyright”

STATUS DEFAULT

METADATA

ows_enable_request "!*“

wms_enable_request “GetMap”

END

・OWSなんでもOKows_enable_request "*“この指定は、旧この指定は、旧この指定は、旧この指定は、旧MapServerと同じ動作と同じ動作と同じ動作と同じ動作

・WMSは全部OKwms_enable_request "*"

・GetFeatureInfo以外のWMSはOKwms_enable_request "* !GetFeatureInfo"

・GetMapとGetFeatureInfoのWMSはOKwms_enable_request "GetMap GetFeatureInfo“

・WFSは全部OKwfs_enable_request "*"

・特定のレイヤでWFSのGetFeatureを禁止wfs_enable_request "!GetFeature"

使用例使用例使用例使用例

Copyright表示は常に出したいが、GetCapabilitiesでは見せたくない

Page 12: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

WFSの出力フォーマットの追加の出力フォーマットの追加の出力フォーマットの追加の出力フォーマットの追加

●●●●WFSののののGetFeatureで出力できるフォーマットが追加されましたで出力できるフォーマットが追加されましたで出力できるフォーマットが追加されましたで出力できるフォーマットが追加されました

・出力可能なフォーマットは、・出力可能なフォーマットは、・出力可能なフォーマットは、・出力可能なフォーマットは、OGRで出力可能で、で出力可能で、で出力可能で、で出力可能で、OUTPUTFORMATで定義できればで定義できればで定義できればで定義できればOK

・例えば、・例えば、・例えば、・例えば、WKT形式の形式の形式の形式のCSV、シェープファイル、、シェープファイル、、シェープファイル、、シェープファイル、MIDMIF等が可能等が可能等が可能等が可能

・オプションで、・オプションで、・オプションで、・オプションで、zip圧縮や圧縮や圧縮や圧縮やmultipart 、メモリーやストリーミング等の指定が可能、メモリーやストリーミング等の指定が可能、メモリーやストリーミング等の指定が可能、メモリーやストリーミング等の指定が可能

OUTPUTFORMATNAME "SHAPEZIP"DRIVER "OGR/ESRI Shapefile"FORMATOPTION "STORAGE=memory"FORMATOPTION "FORM=zip"FORMATOPTION "FILENAME=result.zip"

END

LAYERMETADATA

"wms_title" "Tetsudo""wms_srs" "EPSG:4612""gml_include_items" "all""wfs_getfeature_formatlist" "shapezip"END…

END

例:例:例:例:zip圧縮のシェープファイル圧縮のシェープファイル圧縮のシェープファイル圧縮のシェープファイル

出力:出力:出力:出力:result.zip

・・・・Tetsudo.shp

・・・・Tetsudo.dbf

・・・・Tetsudo.shx

・・・・Tetsudo.prj

Page 13: 大きく進歩したMapServer6の新機能((株)オークニー・丹羽誠様)

■■■■こんなところに注意こんなところに注意こんなところに注意こんなところに注意

・・・・MapServerをををを6.0にバージョンアップする場合、修正が必要ですにバージョンアップする場合、修正が必要ですにバージョンアップする場合、修正が必要ですにバージョンアップする場合、修正が必要です

・シンボル、特にラインの表現が大きく変わりました・シンボル、特にラインの表現が大きく変わりました・シンボル、特にラインの表現が大きく変わりました・シンボル、特にラインの表現が大きく変わりました

・・・・WMSを使っていた場合、を使っていた場合、を使っていた場合、を使っていた場合、ows_enable_request を追加が必要ですを追加が必要ですを追加が必要ですを追加が必要です

・・・・PNGのデフォルトがのデフォルトがのデフォルトがのデフォルトがAGG 24bitになりましたになりましたになりましたになりました

・・・・MapScript でいくつかのメソッド、メンバーが削られましたでいくつかのメソッド、メンバーが削られましたでいくつかのメソッド、メンバーが削られましたでいくつかのメソッド、メンバーが削られました

・・・・EXPRESSION(表現式)の書き方が変わりました(表現式)の書き方が変わりました(表現式)の書き方が変わりました(表現式)の書き方が変わりました

・ラベルの背景の書き方が変わりました・ラベルの背景の書き方が変わりました・ラベルの背景の書き方が変わりました・ラベルの背景の書き方が変わりました

おわりにおわりにおわりにおわりに