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




トップ  >  ソフトウェア豆知識  >  MapServer豆知識  >  MapServer 表示

MapServer 表示

とりあえず表示してみるための基本事項です。

仕組み

MapServerの表示の仕組みは、表示させたいデータをmapファイルに記述した内容にしたがって指定した画像(png等)に変換して、それをHTMLに埋め込んで表示しています。

WEBブラウザへの表示

とりあえずデータそのもの以外で2つのHTMLとmapファイルが一つを使うパターンでいきます。

mapファイル

mapファイルには、ブラウザ表示用に以下のWEBオブジェクトが必要になります。


  WEB
    TEMPLATE global.html
    IMAGEPATH "/www/tmp"
    IMAGEURL "/tmp/"
  END

"TEMPLATE"はMapServerデータを表示させたいHTMLファイルへのパス(多分)。

"IMAGEPATH"はMapServerが作成する画像の一時保存場所へのパス。

"IMAGEURL"はブラウザから見たときの画像のありかで、したがってIMAGEPATHで指定したフォルダのURL的パスです。

index.html

このファイルはmapファイルが指定しているテンプレートのhtmlファイルにあれこれと初期化の設定を転送するためにいるらしい。


<html>
<head>
<title>Mapserver Test</title>
</head>
<body>
<center>
<h2>Mapserver Test</h2>

<form method=get action="/cgi-bin/mapserv.exe">
  <input type="hidden" name="map" value="c:\www\home\test\test.map">
  <input type="hidden" name="layer" value="countries">

  <input type="hidden" name="zoomdir" value=1>
  <input type="hidden" name="zoomsize" value=2>

  <input type="hidden" name="program" value="/cgi-bin/mapserv.exe">
  <input type="hidden" name="map_web_imagepath" 
   value="C:\www\home\tmp\">
  <input type="hidden" name="map_web_imageurl" value="\tmp\">

  <input type="submit" value="Start MapServer">
</form>
</center>
</body>
</html>

この例ではボタンが1つ表示されていて、押すとMapServerが立ち上がるようになっているらしい。 そうすると、とりあえず用済みになります。

formタグのinputタグの"name"プロパティでイロイロと指定します。中身の意味は大体以下のとおり。

  • "map"はMapserverのmapファイルの絶対パス
  • "layer"は最初に表示するレイヤー名で、mapファイルで定義されているものをどれか指定する。
  • "zoomdir"はズームインかアウトを指定。"1"ならズームイン。
  • "zoomsize"はそのサイズ
  • "program"はmapserverのcgiを指定する?多分決め打ち。
  • "map_web_imagepath"はmapserverが作成する画像置き場を指定する。mapファイルで指定しているもの。
  • "map_web_imageurl"は"map_web_imagepath"のURL的パス。

テンプレートHTML

mapファイルでMapServerが画像を埋め込むように指定されたhtmlファイル。 このファイルは実際にMapServerと交信を行うので、<form>タグにMapServer変数というのをあれこれ指定しています。

例としては以下のようなところ。この例では表示された地図画像を任意の点をクリックするとそこを中心にズームインします。


<html>
<head>
<title>Mapserver Test</title>
</head>
<body>

<center>

<h2>Mapserver Test</h2>

<hr>

<form method=GET action="/cgi-bin/mapserv.exe">
  <input name="img" type="image" src="[img]"
      width=600 height=300 border=0 alt="Map Image">
  <input type="hidden" name="layer" value="countries">

  <input type="hidden" name="zoomdir" value=1 [zoomdir_1_check]>
  <input type="hidden" name="zoomsize" size=2 value=[zoomsize]>

  <input type="hidden" name="imgxy" value="[center_x] [center_y]">

  <input type="hidden" name="imgext" value="[mapext]">
  <input type="hidden" name="map" value="[map]">
  <input type="hidden" name="savequery" value="true">
  <input type="hidden" name="mapext" value="shapes">
  <input type="hidden" name="map_web_imagepath"
   value="C:\www\home\tmp\">
  <input type="hidden" name="map_web_imageurl" value="\tmp\">
</form>

</center>
</body>
</html>
  • "program"はもう不要。
  • "imagepath"、"imageurl"はここでも必要。
  • "map"は既にindex.htmlで指定されているものを使うという意味?
  • ここでは"imgext"は"mapext"と同じに指定
  • "savequery"はよくわかりません。多分決め打ち?

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