ラベル mapfile の投稿を表示しています。 すべての投稿を表示
ラベル mapfile の投稿を表示しています。 すべての投稿を表示

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

2014年3月31日月曜日

40 - TinyOWS 3 - マップファイルの TinyOWS 設定例

40-3 マップファイルの TinyOWS 設定例
「Configuring TinyOWS with a standard Mapfile」を参考にマップファイルの設定例をみてみます。実際に設定はしませんでした。
TinyOWS は設定ファイルとしてマップファイルをサポートしています。MapServer と TinyOWS をひとつのファイルで設定出来ます。TinyOWS は、すべてのマップファイルパラメータを扱えません。
マップファイルの場所を TinyOWS バイナリに "TINYOWS_MAPFILE" 環境設定を使って示します。

マップファイルの例 tinyows.map
MAP
 NAME "TinyOWS"
 WEB
  METADATA
   "tinyows_schema_dir" "/usr/local/share/tinyows/schema/"
   "tinyows_onlineresource" "127.0.0.1/cgi-bin/tinyows.fcgi"
   "wfs_title" "TinyOWS service provided by a MapFile"
   "wfs_contact" "foo@bar.net"
  END
 END
 LAYER
  NAME 'France'
  CONNECTIONTYPE postgis
  CONNECTION "host=127.0.0.1 user=user password=password  dbname=tinyows_demo port=5432"
  METADATA
   'wfs_title' 'France'
   'wfs_namespace_prefix' 'tows'
   'wfs_namespace_uri' 'http://www.tinyows.org/'
   'wfs_srs' 'EPSG:27582'
   'tinyows_table' 'france'
   'tinyows_writable' '1'
   'tinyows_retrievable' '1'
  END
  DUMP TRUE
 END
END


● CONNECTIONTYPE には、PostGIS のみ扱えます。
● TinyOWS は、マップファイルで有効な WFS パラメータをすべて扱えるわけではありません。しかし、マップファイル内で TinyOWS のすべての部分を設定できます。
● CONNECTION は、データベースの接続設定です。
● PROJECTION は、wfs_srs を設定します。
● マップファイルの LAYER と FILTER は構造解析されません。
● 初期値は、TinyOWS ですが、TinyOWS と MapServer によって分配された共通属性でもあります。
● TinyOWS は、マップファイルの DATA 要素を使えないので、各レイヤでtinyows_table(tinyows_schema)を使わなければなりません。
● DUMP が TRUE に設定されていないレイヤは、読み書きできません。

2013年11月11日月曜日

10 - 国土数値情報で東京を表示 3 - LABELの日本語表示

10-4 LABELの日本語表示
地図に市区町村名を表示します。

地図に市区町村名(ラベル)を表示するには、マップファイルに次のように追加します。

---
 LAYER
  NAME gyoseikai
  TYPE POLYGON
  STATUS ON
  DATA "tokyo/N03-071001_13.shp"
  LABELITEM "N03_004" #追加
  CLASS
   NAME "City Boundaries"
   STYLE
    OUTLINECOLOR 153 153 153
   END
   LABEL #追加
    MINFEATURESIZE 40 #
   END #
  END
 END
---

このままでは日本語が表示できません。
日本語を表示できるように次のようにします。
次の内容のfonts.txtというファイルを作成します。
マップファイルと同じフォルダに保存します。

kochi-gothic /usr/share/fonts/truetype/kochi/kochi-gothic.ttf
sazanami-gothic /usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
vl-gothic /usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
vl-pgothic /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
(それぞれパッケージ名は、ttf-kochi-gothic、ttfsazanami-gothic、fonts-vlgothic です。)

どれか1行でOKです。
フォント名 フォントがある場所の絶対パス という内容になっています。
フォント名は任意のわかりやすい名前をつけてください。
パスはSynapticパッケージマネージャで、例えば gothic で検索するとパッケージ一覧が表示されます。
インストールされているパッケージを選択し、プロパティをクリックしてインストール済みファイルタブをクリックすると、パスが表示されます。

マップファイル全体は次のようになります。

MAP
 NAME tokyo_shp_map
 STATUS ON
 SIZE 600 300
 EXTENT 138.85 35.4 140 35.975
 UNITS DD
 SHAPEPATH "../mapdata"
 IMAGECOLOR 255 255 255
 FONTSET "fonts.txt"

 WEB
  IMAGEPATH "/home/user/mapsite/ms_tmp/"
  IMAGEURL "/mapsite/ms_tmp/"
 END

 LAYER
  NAME gyoseikai
  TYPE POLYGON
  STATUS ON
  DATA "tokyo/N03-071001_13.shp"
  LABELITEM "N03_004" #追加
  CLASS
   NAME "City Boundaries"
   STYLE
    OUTLINECOLOR 153 153 153
   END
   LABEL #追加
    MINFEATURESIZE 40 #
       TYPE TRUETYPE #フォントのタイプ
    FONT kochi-gothic #fonts.txtで指定したフォント名
    ENCODING SJIS #マップデータのエンコード
    SIZE 8 #フォントサイズ
   END #
  END
 END
END #MAP END


10 - 国土数値情報で東京を表示 2 - 地図の表示

10-3 地図の表示
最初に、マップデータ N03-13_13_130401 の情報を知るために管理ツール gdal-bin を使います。
ないときは、Synapticパッケージマネージャでインストールします。
tokyo フォルダを mapdata フォルダへ移動し、利用可能なレイヤ名を表示します。

~/ダウンロード$ mv tokyo ../mapdata/
~/ダウンロード$ cd ../mapdata/
~/mapdata$ ls mapdata/
110m_cultural    world.topo.bathy.200410.3x5400x2700.jpg
satelliteImages  world.topo.bathy.200410.3x5400x2700.jpgw
tokyo            worlddata

~/mapdata$ ogrinfo tokyo
INFO: Open of `tokyo'
      using driver `ESRI Shapefile' successful.
1: N03-13_13_130401 (Polygon)

次に、N03-071001_13 レイヤのデータを表示します。

~/mapdata$ ogrinfo -summary tokyo N03-13_13_130401
INFO: Open of `tokyo'
      using driver `ESRI Shapefile' successful.

Layer name: N03-13_13_130401
Geometry: Polygon
Feature Count: 3297
Extent: (136.069482, 20.425119) - (153.986898, 35.898424)
Layer SRS WKT:
(unknown)
N03_001: String (10.0) -> [都道府県名]
N03_002: String (20.0) -> [支庁名]
N03_003: String (20.0) -> [郡政令名]
N03_004: String (20.0) -> [市区町村名]
N03_007: String (5.0) -> [行政区域コード]

属性名は、

データのダウンロード(2.各データの詳細)行政区域データ
http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03.html

にあります。
このレイヤは、Geometry: Polygonからポリゴンデータであることが分かります。
また、Extent: (136.069482, 20.425119) - (153.986900, 35.898424)は座標で緯度経度を表し、レイヤの範囲が分かります。

これをもとに、マップファイルを作成します。

MAP
 NAME tokyo_shp_map #任意の名前
 STATUS ON
 SIZE 600 300
 EXTENT 136.069482 20.425119 153.986900 35.898424 #ogrinfoで得た情報から
 UNITS DD
 SHAPEPATH "../mapdata"
 IMAGECOLOR 255 255 255

 WEB
  IMAGEPATH "/home/user/mapsite/ms_tmp/"
  IMAGEURL "/mapsite/ms_tmp/"
 END

 LAYER
  NAME gyoseikai #任意の名前
  TYPE POLYGON #ogrinfoで得た情報から
  STATUS ON
  DATA "tokyo/N03-13_13_130401.shp" #シェイプファイルの相対位置
  CLASS
   NAME "City Boundaries" #任意の名前
   STYLE
    OUTLINECOLOR 153 153 153 #面の外周の色(灰色)
   END
  END
 END
END #MAP END

shp2imgで地図を確認します。

~/mapfile$shp2img -m tokyo_shp.map -o tokyo_shp.png

画像ビューワで確認すると、範囲が広すぎるのが分かります。
今回は、諸島部分を除いた範囲にします。

---
EXTENT 138.85 35.4 140 35.975
---

全体は次の様になります。

MAP
 NAME tokyo_shp_map
 STATUS ON
 SIZE 600 300
 EXTENT 138.85 35.4 140 35.975
 UNITS DD
 SHAPEPATH "../mapdata"
 IMAGECOLOR 255 255 255

 WEB
  IMAGEPATH "/home/user/mapsite/ms_tmp/"
  IMAGEURL "/mapsite/ms_tmp/"
 END

 LAYER
  NAME gyoseikai
  TYPE POLYGON
  STATUS ON
  DATA "tokyo/N03-13_13_130401.shp"
  CLASS
   NAME "City Boundaries"
   STYLE
    OUTLINECOLOR 153 153 153
   END
  END
 END
END #MAP END

shp2imgで地図を確認します。

~/mapfile$shp2img -m tokyo_shp.map -o tokyo_shp.png




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

http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=gyoseikai&map=/home/user/mapfile/tokyo_shp.map

2011年4月17日日曜日

7 ka-map 2 - 準備

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

~/mapsite$ ls ../
---
mapdata/
mapfile/
mapsite/
---

必要なパッケージが準備できたので、マニュアルを進めていきます。
マニュアル の ■Preparing MapServer/ja マップサーバの準備(日本語) をクリックします。

マップサーバーの準備とマップスクリプト・プログラミング・ライブラリは準備できています。
参考に読んでみてください。

データの準備 の1番目の here のリンクが切れているので次のサイトからダウンロードします。

http://ftp.intevation.de/freegis/worlddata/

の freegis_worlddata-0.1_simpl.tar.gz をクリックしてダウンロードしてください。
3番目の here をクリックして cloud_image.zip をダウンロードします。
解凍した次のファイルとフォルダを mapdata フォルダに移動します。

day_cloud.twf
day_cloud.tif
freegis_worlddata-0.1_simpl/(フォルダ名が長いので worlddata にかえました)

freegis_worlddata-0.1_simpl が国境ファイルがあるフォルダ、day_cloud(.tif,.twf) が画像ファイルとそのデータです。

マップサーバーの設定 のコードを global.map という名前のファイルで保存します。
次の行を修正してください。

DATA "data/day_clouds.tif"
->DATA "../mapdata/day_clouds.tif"

DATA "data/countries_simpl.shp"
->DATA "../mapdata/worlddata/countries_simpl.shp"

全体は次のようになります。

MAP
NAME global_map
STATUS ON
SIZE 600 300
EXTENT -180 -90 180 90
UNITS DD
IMAGECOLOR 255 255 255
IMAGETYPE png

WEB
# IMAGEPATH "/opt/fgs/apps/kamap-0.1.1/htdocs/tmp/"
# IMAGEURL "/ka-map/tmp/"
# 影響はありませんがここをかえるならこうなります。
IMAGEPATH "/home/user/mapsite/ms_tmp/"
IMAGEURL "/mapsite/ms_tmp/"
END

LEGEND
TRANSPARENT TRUE
END

SCALEBAR
TRANSPARENT TRUE
END

LAYER
NAME clouds
TYPE RASTER
STATUS ON
DATA "../mapdata/day_clouds.tif"
END

LAYER
NAME countries
GROUP countries
TYPE LINE
STATUS ON
DATA "../mapdata/worlddata/countries_simpl.shp"
CLASS
NAME "Country Boundaries"
STYLE
COLOR 200 100 100
END
END
END
END #MAP END


後で他にも修正するところがありますが、今のところはこのまま保存します。
ディレクトリの構成は次の様になります。

mapsite/ka-map/
mapfile/global.map
mapdata/day_cloud.twf
mapdata/day_cloud.tif
mapdata/worlddata/

マップファイルのテスト のように端末(terminal:ターミナル)で入力してEnterキーを押します。

~/mapfile$ shp2img -m global.map -o global.png

bash: shp2img: command not foundと表示されたら Synaptic パッケージマネージャでmapserver-bin をインストールします。
エラーが表示されなければ、global.png が作成されます。
画像ビューアで表示してみます。
(アプリケーション−グラフィックス−画像ビューア)



続く ...