![]() |
|
|||||
![]() |
(1)「マップサーバ」とは?
マップサーバということばを耳にしたことがあるでしょうか?実は私たちが毎日のように使っているgoogleマップやYahoo地図やマイクロソフト社のBingマップといった地図サービスも、このマップサーバが中心的役割を占めています。
最近ではオープンソースでこのマップサーバがかなり普及してきたので今回はこの仕組みと事例を紹介させていただきます。
ARC-GISやQGIS等のPC単体で動作可能なGIS(空間情報システム)を使ったことのある方ならご存知だと思いますが、このGISで取り扱う地図のデータというのは、ベクターデータ(線や面からできたデータ)とラスターデータ(画像のデータ)という大きく分けて2種類のデータから構成されています。
ベクターデータだけの地図データを表示させた場合、道路等は単なる連続線か道路幅の輪郭線しか表示されません。
面データの場合は内部を塗りつぶすことができますので、建物等は色で塗られた面としての表示されます。
ラスターデータの例としては航空写真(オルソ)や標高イメージ(DEM)等があげられます。
IEやChrome等のWebブラウザ上で地図を簡単に表示させるには、PC単体のGISのようにベクターデータとラスターデータが混在したデータでは通信の方法や表示方法が複雑になりすぎ、表示速度も遅くなります。
そこで当初考えられたのがWMS(ウェブマッピングシステム)という方法です。
これは一枚の地図をすべて一枚の地図画像に変換してマップサーバからブラウザへ配信する方法です。
このサービスはWMSサービスと言ってインターネット上でもNASAや防災研究所等いろいろな機関で公開されています。
PC単体のGISでも最近はWMSサーバのURLを設定すれば簡単に表示させることができます。
ところが、このWMS(ウェブマッピングシステム)には致命的な欠陥があり、あまり一般には普及しませんでした。
それは表示速度が遅いという理由からでした。
そこで考えられたのが、画面で表示する地図を縮尺段階ごとに縦横決まった画素(ピクセル)単位のブロック(タイル)に分割し、マップサーバからブラウザに配信する方法でした。
この方法は専門用語でWMTS(ウェブマップタイルサービス)と呼ばれています。
現在我々が日常使用しているブラウザ上の地図サービスのほとんどがこのWMTS(ウェブマップタイルサービス)を主体としたサービスとなっています。
少しネットが遅い環境でWeb上の地図サービスを使用した場合、地図がモザイク状にところどころ歯抜け状態で表示された経験があると思います。
それはこのような仕組みが理由となっているからです。
(2)オープンソースで入手可能なマップサーバ
さて、自分でGoogleマップの様なサービスをやりたいと思えば、まず上記のマップサーバソフトが必要となります。
商用のマップサーバで一番有名なのがGISトップシェアのESRI社の'ArcGIS for Server'という製品です。
しかし価格が最低ランクで100万円以上するのと保守料も年間25万円程度と、個人ベースで購入するには敷居が高すぎます。
それに以下にあげるオープンソースのマップサーバでも実は商用に比べて実性能的にはほとんど遜色はありません。
・Geoserver(ジオサーバ)
2017年1月1日現在でVer.2.10がリリースされています。
特徴はWeb上のGUIで全ての設定が可能となっている点で、OSはWindows版とLinux版がリリースされています。
私は6年前から使い始めています。
欠点は日本語化がまだされていない点です。
インターネット上の下記のURLからダウンロードできます。
http://geoserver.org
・MapServer
米国のミネソタ大学でGeoserverよりも先に開発され、当初'UMN MapServer'と呼ばれていました。
私もGeoserverを使う前はこのサーバを使用していました。
Geoserverに比べてGUIの設定ではなくCONFIGファイルによる設定が主体なので、少し難しかった記憶があります。
こちらも下記のURLからダウンロードできます。
OSは (Windows, Linux, Mac OS X)をサポートしています。
http://mapserver.org
(3)マップサーバの地図情報を格納する為のデータベースについて
マップサーバの次に用意すべきものは何かというと、地図を作製する為のデータです。
上記マップサーバに投入する地図データ(地図リソース)はベクターデータならSHAPEファイル等、ラスターデータなら航空写真のオルソやDEMデータが一般的ですが、本格的にデータを管理する為には、地図情報に特化したデータベースシステムが必要となってきます。
この地図情報に特化したデータベースシステムのことを'空間情報データベースシステム'(Spatial DBMS)と呼んでいます。
この(Spatial DBMS)も商用版とオープンソース版があり、商用版のトップシェアはOracle社の'Oracle Spatial'という製品で、210万円程します。
(4)オープンソースで入手可能な空間情報データベースシステム
心配することはありません。
オープンソースでも素晴らしい機能と性能のものがちゃんとあります。
このコラムの3回目でとりあげたPostgreSQLに空間情報オプション追加した'PostGIS'という空間情報データベースシステムがあります。
OSはWindows版、Linux版があり、下記のURLからダウンロード可能です。
http://www.postgis.net/
(5)PC用GIS(QGIS)との連携について
地図のデザイン(スタイル)を編集する作業はGeoserver上でも可能ですが、できればPC上のGIS(QGIS等)で素敵なスタイルに加工して、その同じスタイルでマップサーバから配信されるのが理想的なはずです。
これを実現する為には、(4)の空間情報データベースシステムを導入し、PC上の(QGIS)でその地図データベースを読み込み、地図の色を変えたり、フォントを変更したり、ハッチングパターンを変更したり、鉄道の破線パターンを変えたりして理想のデザインの地図にした後、そのスタイル定義ファイル(SLDファイル)をGeoserverに読み込ませれば、QGISで作成したスタイルと同じスタイルの地図をGeoserverが配信するようになります。
このほかにも地図データベースの属性を変更したりと、PC用GIS(QGIS)と空間データベースを介してマップサーバ連携するメリットは多くあります。
ぜひ地図データの空間データベース化とPC上のGIS(QGIS等)の連携にチャレンジしてみて下さい。
【参考リンク】
>>シリーズコラム「土木技術者GIS入門中」
(第5回〜第7回:「QGISに挑戦してみる!」)
(6)Web用のプログランミングについて
マップサーバからWebマップ用の地図発信ができるようになったなら、次はWeb上の地図表示コンテンツ作成をする必要があります。
Googleマップ等で既に行っている方も多いと思いますが、自作のMAPサーバの場合には最も適したライブラリがありますので、ご紹介します。
Googleマップの場合は'GoogleMAP API'というgoogleから提供されるAPIを使用しますが、自作MAPサーバを表示する場合は'Openlayers'というJavascriptライブラリを使用するのが最も良いと思われます。
この'OpenLayers'というライブラリはGoogleMAPに勝るとも劣らぬ機能を持っていますので、ぜひ試して下さい。
下記のURLからダウンロード可能です。
https://openlayers.org/
(7)誰がこんな「いたせりつくせり」のものを作ったの?
ここまで読んでいただいて、少し不思議な気持ちになってきませんか?「商用で買うと100万も200万もしておまけに高額の年間保守料までとられるものが、全て無料でダウンロードできるって・・・・・。」
これらのソフトウェアのほとんどはOSGeo財団(The Open Source Geospatial Foundation)という団体が有志の協力の基に開発しています。
弊社も非力ながららこの団体の日本支部のスポンサーとして協力させて頂いております。
もしこれらのオープンソースシステムを使ってみて、役に立ったと思われた場合はぜひこの団体を支援してあげてください。
http://www.osgeo.org/
http://www.osgeo.jp/ (日本支部)

