2015年5月26日火曜日

8 MapServer でマップファイルのテスト

8-1 MapServer 付属の OpenLayers
MapServer に組み込まれた OpenLayers を使って、マップファイルのテストをします。
これは表示テスト用なので、レイヤ別の表示などの機能の設定はできません。

MapServer OpenLayers Viewer
http://mapserver.org/cgi/openlayers.html

の 「Opening the OpenLayers viewer in your browser」 の

http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=lakespy2&layer=dlgstln2&map=/var/www/workshop/itasca.map

で /var/www/workshop/itasca.map の部分を、itasca demo(6 MapServer のインストール の 6-4 動作確認 で使った workshop-5.4)の 自分のマップファイルの位置にします。

Web ブラウザのアドレスバーに次のように入力して Enter キーを押します。

http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=lakespy2&layer=dlgstln2&map=/home/user/public_html/workshop-5.4/itasca.map



8-2 マップデータの準備
8-2-1 フォルダの作成
マップファイルを保存する mapfile フォルダとマップデータを保存する mapdata フォルダを作成します。

user@deb8-vmw:~$ mkdir mapdata
user@deb8-vmw:~$ mkdir mapfile
user@deb8-vmw:~$ ls
---
mapdata/
mapfile/
---
public_html/
---

8-2-2 NaturalEarth
国境のデータを準備します。

NaturalEarth ホームページ
http://www.naturalearthdata.com/

の、「Get the Data」をクリックします。

Downloads サイト
http://www.naturalearthdata.com/downloads/

の「Small scale data, 1:110m」の「Cultural」をクリックします。

1:110m Cultural Vectors サイト
http://www.naturalearthdata.com/downloads/110m-cultural-vectors/

の「Admin 0 – Countries」の「Download countries」ボタンをクリックしてダウンロードします。
「110m_cultural」というフォルダを作成してその中で解凍し、mapdataフォルダに移動します。

user@deb8-vmw:~$ cd ダウンロード
user@deb8-vmw:~/ダウンロード$ mkdir 110m_cultural
user@deb8-vmw:~/ダウンロード$ ls
---
110m_cultural  ne_110m_admin_0_countries.zip
---
user@deb8-vmw:~/ダウンロード$ mv ne_110m_admin_0_countries.zip 110m_cultural
user@deb8-vmw:~/ダウンロード$ cd 110m_cultural
user@deb8-vmw:~/ダウンロード/110m_cultural$ unzip ne_110m_admin_0_countries.zip
user@deb8-vmw:~/ダウンロード/110m_cultural$ cd ../
user@deb8-vmw:~/ダウンロード$ mv 110m_cultural ../mapdata/


///// 参考 /////
OpenStreetMap のデータを使った国境のデータが

OpenStreetMap DATA ホームページ
http://openstreetmapdata.com/

にあります。
ページの下の方にある「Show all data」ボタンをクリックします。
http://openstreetmapdata.com/data ページの「Land Polygons」をクリックします。
http://openstreetmapdata.com/data/land-polygon ページの「Format: Shapefile, Projection: WGS84, Last update: 2015-05-17 19:47
(Large polygons not split)」の左側の「Download」ボタンをクリックします。
land-polygons-complete-4326.zip 解凍します。

user@deb8-vmw:~/ダウンロード$ ls
---
land-polygons-complete-4326.zip
---
user@deb8-vmw:~/ダウンロード$ unzip land-polygons-complete-4326.zip
Archive:  land-polygons-complete-4326.zip
  inflating: land-polygons-complete-4326/README  
 extracting: land-polygons-complete-4326/land_polygons.cpg  
  inflating: land-polygons-complete-4326/land_polygons.dbf  
  inflating: land-polygons-complete-4326/land_polygons.prj  
  inflating: land-polygons-complete-4326/land_polygons.shp  
  inflating: land-polygons-complete-4326/land_polygons.shx

user@deb8-vmw:~/ダウンロード$ ls
---
land-polygons-complete-4326
land-polygons-complete-4326.zip
---
///// ここまで /////


8-2-3 Blue Marble
Blue Marble 画像の準備します。

VISIVLE EARTH
http://visibleearth.nasa.gov/

の「The Blue Marble」をクリックします。

http://visibleearth.nasa.gov/view_cat.php?categoryID=1484

の 「The Blue Marble: Land Surface, Ocean Color and Sea Ice」をクリックします。

http://visibleearth.nasa.gov/view.php?id=57730

の「land_ocean_ice_2048.jpg 」を右クリックして「名前をつけてリンク先を保存」をクリックします。

次の内容のワールドファイル land_ocean_ice_2048.jpgW を作成します。
user@deb8-vmw:~/ダウンロード$ vim land_ocean_ice_2048.jpgw
0.17578125          #画像ピクセルが左から右に進む際の1ピクセル当りの座標増減値
0.00000             #回転行列パラメータ
0.00000             #回転行列パラメータ
-0.17578125         #画像ピクセルが上から下に進む際の1ピクセル当りの座標増減値
-179.96666666666667 #画像左上のX座標(経度方向)
89.96666666666667   #画像左上のY座標(緯度方向)

user@deb8-vmw:~/ダウンロード$ ls
---
land_ocean_ice_2048.jpg
land_ocean_ice_2048.jpgw
---
user@deb8-vmw:~/ダウンロード$ mv land_* ../mapdata/
user@deb8-vmw:~/ダウンロード$ cd ../mapdata/
user@deb8-vmw:~/mapdata$ ls
land_ocean_ice_2048.jpg  land_ocean_ice_2048.jpgw


8-3 マップファイルの準備
基本のマップファイルは、

An Introduction MapServer - MapServer 6.4.1
http://mapserver.org/el/introduction.html



Introduction to the Mapfile
http://mapserver.org/el/introduction.html#introduction-to-the-mapfile

を参考に作成します。

user@deb8-vmw:~/mapdata$ cd ../mapfile/
user@deb8-vmw:~/mapfile$ vim global.map
MAP
# NAME "sample"
 NAME "global_map"
 STATUS ON
# SIZE 600 400
 SIZE 600 300
# SYMBOLSET "../etc/symbols.txt"
 EXTENT -180 -90 180 90
 UNITS DD
# SHAPEPATH "../data"
 SHAPEPATH "../mapdata"
 IMAGECOLOR 255 255 255
# FONTSET "../etc/fonts.txt"

#
# Start of web interface definition
#
 WEB
# IMAGEPATH "/ms4w/tmp/ms_tmp/"
  IMAGEPATH "/home/user/public_html/ms_tmp/"
  IMAGEURL "/~user/ms_tmp/"
 END # WEB

#
# Start of layer definitions
#
 LAYER
  NAME global-raster
  TYPE RASTER
  STATUS DEFAULT
#  DATA bluemarble.gif
  DATA "land_ocean_ice_2048.jpg"
 END # LAYER
 LAYER
  NAME country-boundary
  TYPE POLYGON
  STATUS ON
  DATA "110m_cultural/ne_110m_admin_0_countries.shp"
  CLASS
   NAME 'Country Boundary'
   STYLE
    OUTLINECOLOR 153 0 0
   END
  END
 END
END # MAP


Map オブジェクト
MAP
 NAME "global_map"
 STATUS ON
 SIZE 600 300
 EXTENT -180 -90 180 90
 UNITS DD
 SHAPEPATH "../mapdata"
 IMAGECOLOR 255 255 255
END # MAP


STATUS: ブラウザで開いた時のマップの ON/OFF/DEFAULT(表示/非表示/初期値)
SIZE: ピクセル単位のマップの幅と高さ
EXTENT: 出力マップの単位の出力範囲
UNITS: マップの緯度経度の単位 DD 度 degree
SHAPEPATH: シェープファイルの位置 Layer オブジェクトで省略可能
IMAGECOLOR: 画像背景色初期値

Layer オブジェクト
MapServer 5.0 からマップファイルでレイヤの数に制限はありません。
the DATA parameter is relative to the SHAPEPATH parameter of the MAP object
DATA パラメータは、MAP オブジェクトの SHAPEPATH パラメータを基準にしています。
DATA 拡張子が、ファイル名に用意されていない場合、MapSeerver は、ESRI シェープフォーマット(.shp)と仮定します。

Raster レイヤ
(Raster: ピクセル(画素)画像のようにマス目の集合体で表現された画像データ。)
 LAYER
  NAME global-raster
  TYPE RASTER
  STATUS DEFAULT
#  DATA bluemarble.gif
  DATA "land_ocean_ice_2048.jpg"
 END # LAYER


Vector レイヤ
TYPE point、line、または polygon のベクタレイヤを表示することができます。次の例では、OUTLINECOLORパラメータを使用して、TYPE polygon レイヤからのline([外周]線)だけを表示する例を示します。
 LAYER
  NAME country-boundary
  TYPE POLYGON
  STATUS ON
  DATA "110m_cultural/ne_110m_admin_0_countries.shp"
  CLASS
   NAME 'Country Boundary'
   STYLE
    OUTLINECOLOR 153 0 0
   END # STYLE
  END # CLASS
 END # LAYER

CLASS: CLASS オブジェクト
STYLE: スタイルは、シンボル化とスタイリングのためのパラメータを保持しています。複数のスタイルが、CLASS または LABEL 内に適用することができます。
([http://mapserver.org/el/mapfile/style.html#style])


Webブラウザのアドレスバーに次のように入力して Enter キーを押します。

http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=global-laster&layer=country-boundary&map=/home/user/mapfile/global.map

基本部分
http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers

マップファイル global.map の レイヤー LAYER
&layer=global-laster
&layer=countries-border

マップファイルの位置
&map=/home/user/mapfile/global.map

次のように地図が表示されます。
* shp2img コマンドを使って画像を生成することもできます。
user@deb8-vmw:~/mapfile$ shp2img -m global.map -o global.png

0 件のコメント: