TOPシステム開発> はじめに
PHPプロ!マガジン
MapServerマスターへの道

第1回:MapServerとは

著者:アシアル  森川 穣   2007/1/15
1   2  3  次のページ
はじめに

   これまでWeb上に地図を表示するには、商用の地図配信業者に依頼したり、限定されたライセンス制約のもと、Google MapsなどのWeb サービスを使う以外に有効な選択肢はありませんでした。この連載では、上記よりもより柔軟でカスタマイズ性に富むMapServerソフトウェアを使った、WebGISアプリケーションの構築手法について学んでいきます。

MapServerとは

   突然ですが、Google Mapsを見たことがあるでしょうか。もしないというのであれば、この記事を読む前にご覧になってください。この記事で紹介するMapServerはGoogle MapsのようなWebGISといわれるシステムを作成する際に絶対に必要となる技術です。


   MapServerをどの部分で使用するのかというと、ベクトルデータといわれる点や線、面の数値情報を画像データに変換するために使用します。地図画像の作成なんて専門の会社でなければできない、と思うかもしれませんが、このMapServerを使用すれば意外と簡単にできてしまうのです。

   もっとも、表示するためのベクトルデータは何らかの形で用意しなければなりませんがデータについても国土地理院から発行されているデータや、国土交通省国土計画局の国土数値情報ダウンロードサービスというものもあり、単純なデータであれば用意するのも簡単です。

   従来のWebGISのニーズは研究目的や、複雑な解析を行う統計データを使用したマーケティングなどのためのデスクトップアプリケーションが中心でした。しかし、Google Mapsの登場によってWebマッピングがより簡単に実現できるようになり、既存の情報の中で位置情報を含むデータと地図との連携など、WebGISへの需要が高まってきているのが現状です。

   PHPの基本的な技術を習得済みであれば、MapServerに含まれるPHP/MapScriptを使用して簡単に地図画像を出力したり、その出力される地図画像をカスタマイズすることができます。また、位置情報をPostgreSQLの拡張機能であるPostGISを使用して管理することで、Webシステムでのデータのインサートやアップデートと同じ感覚で位置情報を扱うことができます。

   MapServerと商用システムを比較するとどうなのか、ということを考えるかもしれません。確かに、商用システムの方が実績も多いですし、多機能と言えるかもしれません。しかし、地図をWeb上に表示するのに充分な機能をMapServerは持っており、かゆいところにまでは手が届かないかな、というくらいのものです。また、欧米では民間、政府機関を問わず多くの利用実績があり、信頼性も充分といえるでしょう。


必要なライブラリ

   地理情報を扱うには、ポイントやライン、ポリゴンの緯度経度の情報を保存しなければなりません。たとえば、道路の情報であれば道路を折れ線と考えて、それぞれの点の緯度経度を保存します。湖であればポリゴンとして、ポリゴンを構成する閉曲線の緯度経度情報を保存することになります。

   MapServerはこのように数値として保存された緯度経度から、地図を描画することができます。今回の記事ではPostgreSQLに地図の位置情報を保存します。実際のシステムで毎回地図画像を出力していては処理が重くなってしまうので、バッチ処理であらかじめ画像を出力しておいたり、キャッシュを使用するなどの工夫をすることになります。

   保存された地理情報を画像として描画するMapServerは、C言語で記述されたCGIが基本となるソフトウェアですが、その機能をPHP、Perl、Python、Javaなどで使用することができます。今回はそのPHP用のライブラリ(MapScript)を使用して地図画像を作成します。

   CGIを使用しても地図画像を出力することができますが、その場合事前に作成されたMapファイルという設定ファイルの内容通りの画像しか出力することができません。しかし、スクリプト言語から使用することで動的にその設定内容を変更することができます。

   動的な設定内容の変更の何がすごいかというと、クエリストリングで表示するレイヤを指定したり(線路は描画しないなど)、アイコンを動的に変更したり、いわゆる普通のWebシステムから想像できる大抵の設定を行うことができるということです。

   今回の記事では、MapServerの簡単な使用方法を紹介したいと思います。簡単に紹介するといっても、使い方を理解して地理データを用意すれば、Web上に動的な地図を表示することができるようになります。

1   2  3  次のページ

アシアル株式会社 森川 穣
著者プロフィール
アシアル株式会社
森川 穣

高校まではPC・プログラミングとは無縁の生活を送っていたが、大学時代にプログラミングに目覚める。当時、主にC言語でのプログラミングを行っていた。大学4年時にアシアル株式会社にアルバイトとして入社。そこで初めてPHP言語でのプログラミングを覚え、会社に深く参画していく。「極める!PHP」や「超極める!PHP」、「WEB+DB PRESS」等、多数執筆。現在はオープンソースWeb地図作成ソフトMapServerを使った開発に力を入れている。


INDEX
第1回:MapServerとは
はじめに
  MapServerのインストール
  データの用意