2008年6月25日水曜日

ka-Mapの機能 2Query クエリ

Query クエリ
日本語になりにくい言葉ですが、敢えてあてはめれば「問い合わせ」機能というところでしょうか。
クリックしたところの情報が表示されます。



クリック前




i アイコンをクリック後




地図をクリック後



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 "data/freegis_worlddata-0.1_simpl/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と同じフォルダに次の内容でglobal_template.html(ファイル名は任意)作成してください。

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

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

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

TEMPLATE global_template.html

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

fields "name:Name"

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


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

Webブラウザを再読み込みしてください。
グループ(レイヤ)名左側の青丸のアイコンの赤い禁止マークが消えています。
iアイコンをクリックして地図の陸地をクリックすると左側にクエリの結果が表示されます。
(地図が変わらないときは一時保存フォルダの画像を削除してみてください。
/home/user#rm -r ka-map/htdocs/tmp/kacache/weather
また、Webブラウザのキャッシュも消去してみてください。
FireFoxの場合 ツール->プライバシー情報の消去->キャッシュだけチェック->今すぐ消去)

0 件のコメント: