サイトマップ
お知らせ、メモ
案内板
うちのヘッドライン
 




トップ  >  ソフトウェア豆知識  >  MapServer豆知識  >  MapServer クエリー

MapServer クエリー

通常の表示ではモードは"map"ですが、"query"を指定して表示されているオブジェクトの属性を表示することができます。

クエリモードを使用するには、以下のようにします。

クエリ結果の表示用テンプレートを作成

クエリー結果を保持するテンプレートを作成します。 結果をテーブルで表示したい場合は大体以下のようにします。


<tr>
  <td>[lrn]</td>
  <td>[pref]</td>
  <td>[city1]</td>
  <td>[city2]</td>
  <td>[town1]</td>
  <td>[jcode]</td>
  <td>[p_num]</td>
  <td>[h_num]</td>
  <td>[flag1]</td>
  <td>[flag2]</td>
  <td>[s_tky2jgd]</td>
</tr>


同時にヘッダ、フッタのhtmlを作成しておきます。実行時には3つが合成されるので、合成したときに正しいhtml文書になるように作成します。


ヘッダ

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift-jis">
<meta http-equiv="Content-Style-type" content="text/css">
<title>Mapserver Query Test</title>
</head>
<body>
<center>
<h2>Mapserver Query Test</h2>

<table border="1px" width="80%">
  <tr bgcolor="slateblue">
    <th>lrn</th><th>pref</th><th>city1</th>
    <th>city2</th><th>town1</th><th>jcode</th>
    <th>p_num</th><th>h_num</th><th>flag1</th>
    <th>flag2</th><th>s_tky2jgd</th>
  </tr>

フッタ

</table>

</center>
</body>
</html>

mapファイルの設定

上記のテンプレートをレイヤーとクラスに設定します。 テンプレートをクラスに、ヘッダとフッタをレイヤーに設定する形になります。


  LAYER
    NAME "jpn"
    TYPE POLYGON
    STATUS DEFAULT
    DATA "the_geom from test"
    CONNECTIONTYPE POSTGIS
    CONNECTION "user=postgres dbname=gistest host=localhost 
                password=bering port=5432"(実際は1行)
    LABELITEM city1
    CLASS
      STYLE
        OUTLINECOLOR 100 100 100
        COLOR 255 255 150
      END
      LABEL
        TYPE truetype
        FONT msgothic
        ENCODING SHIFT-JIS
        SIZE 14
        COLOR 0 0 150
      END
      TEMPLATE "query.html"
    END
    
    HEADER "query_header.html"
    FOOTER "query_footer.html"
  END

レイヤーが複数ある場合は通常属性テーブルも変わるので、テンプレートもレイヤーごとに作成しておき、それぞれ指定します。

map表示用のhtmlテンプレートの設定

こちらは、hiddenタグの"mode"のところに"query"を指定するだけです。


  <input type="hidden" name="mode" value="query">

実行

マップ上をマウスでクリックすると当たったところの属性が表示されます。


Mapserver Query Test

lrnprefcity1city2town1jcode p_numh_numflag1flag2s_tky2jgd
1 秋田県 西仙北町 仙北郡 5422 11554 2941 1 0 0

クリエイティブ・コモンズ・ライセンス
This documents by Yamate,N is licensed under a Creative Commons 表示 - 継承 3.0 非移植 License.
login