2011年4月17日日曜日

7 ka-map 6 - Query クエリー

7-7 Query クエリー

Main Page/ja-Ka-Map Wiki
http://ka-map.ominiverdi.org/wiki/index.php/Main_Page/ja

の ユーザーガイド の Query - How to setup a ka-Map! point and click query information system using the maps legend "i" icon をクリックします。
(地図の凡例 "i" アイコンを使った、任意の場所を指してクリックする ka-Map のクエリ情報システムのセットアップ)

ここには、クエリシステムを動作させる方法が書いてあります。
Mapfile Query Configuration for ka-Map!(ka-Map のためのマップファイルクエリ設定)に書かれている設定でクエリ機能を有効にします。

global.map を例にしてみます。
countries レイヤに METADATA オブジェクトを追加して

"queryable" "true"

を追加します。
このとき、このマップファイルのレイヤがクエリ可能なka-Mapのレイヤとして機能するためにグループ(GROUP)を定義してください。

---
LAYER
NAME countries
GROUP countries #必須
TYPE LINE
STATUS ON
DATA "mapdata/worlddata/countries_simpl.shp"
METADATA #ここを追加
"queryable" "true" #ここを追加
END #ここを追加
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
END
---

さらに、Using MapServer's Templating System for Queries を参考にクエリテンプレートを追加します。
global.map と同じフォルダに次の内容で name_template.html(ファイル名は任意)作成してください。

<html>
<head><title>Name Template</title></head>
<body>
<li> [name]
</body>
</html>

name: freegis_worlddata_0.1-simpl の属性の名前。 name という項目名で国名が設定されてます。

global.map に次の行を追加します。

TEMPLATE name_template.html

Ominiverdi's query system を参考に global.map のメタデータ(Metadata)に次の行を追加します。

fields "name:Name"

countries レイヤのコードは次のようになります。

---
LAYER
NAME countries
GROUP countries #必須
TYPE LINE
STATUS ON
DATA "mapdata/worlddata/countries_simpl.shp"
METADATA
"queryable" "true"
fields "name:Name" #ここを追加
END
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
TEMPLATE name_template.html #ここを追加
END
---


0 件のコメント: