Preparing ka-Map/ja

From Ka-Map Wiki

Jump to: navigation, search

このページのほとんどの文章はTyler MitchellのBuild AJAX-Based Web Maps Using ka-Map という記事を元にしています。

Contents

[edit] ka-Mapの準備

従来のマップサーバーWeb地図の場合は、次のステップとしてフォームを含むHTMLページを作ってマップサーバーCGIプログラムにプロセスさせました。一方ka-Mapの場合は最低限の設定を行うだけですぐに始めることができます。まず、ka-Mapの設定ファイルとPHPスクリプトが必要です。

ka-Mapには3種類のパッケージがあります。

MapToolsのka-Mapセクションから以下のソースパッケージとして提供されるパッケージ

  • gzで圧縮されたtarアーカイブ
  • zipアーカイブ
  • オンラインCVSリポジトリー

FGSリナックスインストーラで、以下のコマンドを使用して取得できるパッケージ

fgs install kamap-base:0.1.1 http://dl.maptools.org/dl/fgs/modules/

MapServer For Windows (MS4W)のzipアーカイブとして提供されるパッケージ

CVSバージョンを取得するにはCVSクライアントが必要です。Linuxでは以下のコマンドでダウンロードすることができます。

cvs -d (server_path) checkout (local_folder_name)

上のコマンドで、(server_path)は[1]のサーバーパスに置き換え、また(local_folder_name)はローカルマシンのダウンロード先のフォルダ名に置き換えてください。

ファイルは非常に単純なフォルダ構造に収められています。

.../kamap-1.0/
.../kamap-1.0/docs/
.../kamap-1.0/htdocs/
.../kamap-1.0/htdocs/images/
.../kamap-1.0/include/

.../kamap-1.0/htdocs/tmp/

扱うことになるのはhtdocsフォルダにあるファイルです。シンプルさを保つために、mapファイルとdataフォルダもここに移動してください。

[edit] セキュリティー上の注意

製品環境、またはパブリックな環境においてglobal.mapファイルを誰でもアクセスできる場所に置くのは望ましくありません。この例は内部テストを行うこと、そしてフォルダ管理をできるだけシンプルに保つことだけを目的としています。global.mapがhtdocsフォルダにあるということは、URLを使ってアクセスできてしまいます。もしmapファイルにデータベースに接続する記述があるのでしたら特に危険です。なぜならその記述にはデータベースのユーザー名が含まれてしまっているからです。

mapファイルとデータを分ける目的で、以下のフォルダ構造がよく使われます。

.../kamap-1.0/map/global.map
.../kamap-1.0/data/countries_simpl.*
.../kamap-1.0/data/day_clouds.*

[edit] Webサーバー・エイリアス

Webサーバーがka-Mapを使えるようにするには、Webサーバー・エイリアスを設定する必要があります。FGSやMS4Wではこの設定は自動で行われます。その他の場合は以下のような記述をWebサーバーの設定ファイル、例えばApacheのhttpd.confなどに追加してください。

Alias /ka-map/ "/opt/fgs/apps/kmap-0.1.1/htdocs/"
<Directory "/opt/fgs/apps/kmap-0.1.1/htdocs/">
       Options Indexes
       AllowOverride None
       Order allow,deny
       Allow from all
</Directory>

以上の設定により、シンプルなURL(/ka-map/)が入力された場合にka-Mapが存在するファイルパスが参照されるようになります。

[edit] ka-Map設定ファイル

ka-Mapには主な設定ファイルが一つあります。

.../kamap-0.1.1/htdocs/config.php

このファイルの設定を少し行えば完全に動作するka-Mapのできあがりです。FGSやMS4Wパッケージにおいてはほとんどが設定済みです。また、config.phpに設定方法を説明したドキュメンテーションがあります。ka-Mapの設定の中で本当に心配しなくてはならない項目は3つだけです。

[edit] ライブラリポインタの設定

ka-MapはPHP MapScriptとPHP用GDモジュールの両方を必要とします。config.phpでこれらのライブラリを場所を示さなければなりません(23行目付近):

$szPHPMapScriptModule = 'php_mapscript_cvs_rel.4.6.0.beta2.'.PHP_SHLIB_SUFFIX;
$szPHPGDModule = 'php_gd.'.PHP_SHLIB_SUFFIX;

一つ目がPHP MapScriptライブラリの接頭辞です。上の例はごく最近のベータ版のPHP MapScriptを使用しているため幾分冗長に見えます。これをあなたのシステム上のphp_mapscriptライブラリのファイル名に変えてください。多くの場合、以下のようなシンプルなものになります:

$szPHPMapScriptModule = 'php_mapscript.'.PHP_SHLIB_SUFFIX;

もしくは:

$szPHPMapScriptModule = 'php_mapscript_46.'.PHP_SHLIB_SUFFIX;

ドキュメンテーションによると、Windowsの場合はphp_gdへのポインターをphp_gd2へ変更する必要がありそうです。

PHP_SHLIB_SUFFIX変数には自動的にファイル名の接尾辞が付けられます。例えばシステムによって.soや.dllなどです。このファイル名の設定では接尾辞を含まないように注意してください。

[edit] mapファイルを追加する

カスタムアプリケーションをka-Mapで表示するには、map関連の設定のほかに、mapファイルがどこにあるかを示さなければなりません。80行目付近に$aszMapFiles配列を設定する部分があります。最初はGMapという地図アプリケーションを使うように設定されているので、以下のように変更してください:

$aszMapFiles = array(
       "weather"     => array( "Global Weather",
                               "/opt/fgs/apps/kamap-0.1.1/htdocs/global.map",
                               array( 100000000, 50000000, 15000000 ),
                               "PNG")
);

これらの情報は全て$aszMapFilesという配列に保存されます。最初の設定はka-Mapインスタンスの名前です。この場合は「weather」という名前で、先ほど作ったglobal.mapを使うように設定されています。この名前は別の場所でも使われるので、また後で目にすることになります。

2番目の設定はテキストで「Global Weather」となっていて、Webページのドロップダウンボックスの中に現れる名前です。このドロップダウンボックスでどのmapファイルを使うかを選択できます。

3番目の設定はgloba.mapファイルの場所を示し、どのようにシステムを設定したかで違ってきます。今回の例ではglobal.mapはka-Mapのhtdocsフォルダにdataフォルダと一緒に保存されています。

[edit] 縮尺と画像フォーマットの設定

4番目の設定は縮尺リストです。ユーザーはこれらの縮尺で地図を閲覧することができます。例えば1000は1:1000という縮尺です。これは画面上の1インチが実際には1000インチであることを意味します。

最後の設定は画像フォーマットです。この例では「PNG」が使われています。

閉じ括弧が2つあることに注目してください。一つは「PNG」の後にあり、「weather」配列を終えるためのものです。もし複数のインスタンスを作りたい場合はこの括弧の後にコンマを書き、新たなキーによる別の配列を作ってください。

この2つ目の閉じ括弧は次の行にあり、その後ろにセミコロンがあります。これは$aszMapFiles配列の設定を終えるためのものです。

以上のようにconfig.phpを変更したら、マップをテストする準備の完了です。

Personal tools