7-4-1 ダウンロード
国土交通相は地理空間情報を推進するための一貫として、国土数値情報のダウンロードサービスをしてます。
このうちのJPGIS準拠データのダウンロードサービスから東京のデータをダウンロードして地図を表示してみます。「4. 交通」の「空港間流通量」もダウンロードします。
国土交通省
http://www.mlit.go.jp/index.html
の「政策情報・分野別一覧」の「国土政策」をクリックします。
国土政策
http://www.mlit.go.jp/kokudoseisaku/index.html
の「データ・情報コーナー」の「国土数値情報ダウンロードサービス」をクリックします。
国土数値情報ダウンロードサービス
http://nlftp.mlit.go.jp/ksj/index.html
で、東京の行政区域のデータをダウンロードします。
a 「JPGIS2.1」の「行政区域」をクリックします。
b 「データのダウンロード(2.各データ詳細)」で、「東京」のチェックボックスをクリックしてチェックし、「次へ」ボタンをクリックします。
c 「データのダウンロード(3.ファイルの選択)」で、最新のデータのチェックボックスをクリックしてチェックします。(2017-7-1現在 平成29年度)
「次へ」ボタンをクリックします。
d アンケートに回答します。
e データのダウンロード(4.国土数値情報利用約款)の内容を読み、「上記のことを理解しました。」で「はい」ボタンをクリックします。
f データのダウンロード(5.ダウンロード)で「ダウンロード」ボタンをクリックします。
ダイアログボックス---ダウンロードしますか?の「OK」ボタンをクリックします。
7-4-2 データの確認
ダウンロードしたファイルを解凍します。
nlni/tokyo というフォルダを作成し、そこにファイルを移動して解凍します。
user@deb9-vmw:~$ cd ダウンロード
user@deb9-vmw:~/ダウンロード$ ls
---
N03-170101_13_GML.zip
---
user@deb9-vmw:~/ダウンロード$ mkdir nlni
user@deb9-vmw:~/ダウンロード$ mkdir nlni/tokyo
user@deb9-vmw:~/ダウンロード$ mv N03-170101_13_GML.zip nlni/tokyo/
user@deb9-vmw:~/ダウンロード$ cd nlni/tokyo/
user@deb9-vmw:~/ダウンロード/nlni/tokyo$ ls
N03-170101_13_GML.zip
user@deb9-vmw:~/ダウンロード/nlni/tokyo$ unzip -j N03-170101_13_GML.zip
user@deb8-vmw:~/ダウンロード/nlni/tokyo$ ls
データがどのようになっているか、N03-17_13_170101.dbf を LibreOffice Calc で開きます。user@deb9-vmw:~/ダウンロード$ ls
---
N03-170101_13_GML.zip
---
user@deb9-vmw:~/ダウンロード$ mkdir nlni
user@deb9-vmw:~/ダウンロード$ mkdir nlni/tokyo
user@deb9-vmw:~/ダウンロード$ mv N03-170101_13_GML.zip nlni/tokyo/
user@deb9-vmw:~/ダウンロード$ cd nlni/tokyo/
user@deb9-vmw:~/ダウンロード/nlni/tokyo$ ls
N03-170101_13_GML.zip
user@deb9-vmw:~/ダウンロード/nlni/tokyo$ unzip -j N03-170101_13_GML.zip
Archive: N03-170101_13_GML.zip inflating: KS-META-N03-17_13_170101.xml inflating: N03-17_13_170101.dbf inflating: N03-17_13_170101.prj inflating: N03-17_13_170101.shp inflating: N03-17_13_170101.shx inflating: N03-17_13_170101.xml
user@deb8-vmw:~/ダウンロード/nlni/tokyo$ ls
KS-META-N03-17_13_170101.xml N03-17_13_170101.prj N03-17_13_170101.xml N03-170101_13_GML.zip N03-17_13_170101.shp N03-17_13_170101.dbf N03-17_13_170101.shx
(データ量が多いと開かない場合があります。)
アクティビティ -> アプリケーションを表示する(左側の一番下のアイコン) -> LibreOffice Calc
「開く」ボタン
をクリックします。
文字列は日本語(Shift-JIS)にします。
確かめたら LibreOffice を閉じます。
7-4-3 地図の表示
最初に、マップデータ N03-17_13_170101 の情報を知るために管理ツール gdal-bin を使います。
ないときは、Synaptic パッケージマネージャでインストールします。
nlni/tokyo フォルダを mapdata フォルダへ移動し、利用可能なレイヤ名を表示します。
user@deb9-vmw:~/ダウンロード/nlni/tokyo$ cd ../../
user@deb9-vmw:~/ダウンロード$ ls
---
nlni
---
nob61@deb9-vmw:~/ダウンロード$ mv nlni/ ../mapdata/
user@deb9-vmw:~/ダウンロード$ cd ../mapdata/
user@deb9-vmw:~/mapdata$ ls
110m_cultural land_ocean_ice_2048.jpg land_ocean_ice_2048.jpgw nlni
user@deb9-vmw:~/mapdata$ cd nlni/
user@deb9-vmw:~/mapdata/nlni$
user@deb9-vmw:~/mapdata/nlni$ ls
tokyo
user@deb9-vmw:~/mapdata/nlni$ ogrinfo tokyo
次に、N03-17_13_170101 レイヤのデータを表示します。user@deb9-vmw:~/ダウンロード$ ls
---
nlni
---
nob61@deb9-vmw:~/ダウンロード$ mv nlni/ ../mapdata/
user@deb9-vmw:~/ダウンロード$ cd ../mapdata/
user@deb9-vmw:~/mapdata$ ls
110m_cultural land_ocean_ice_2048.jpg land_ocean_ice_2048.jpgw nlni
user@deb9-vmw:~/mapdata$ cd nlni/
user@deb9-vmw:~/mapdata/nlni$
user@deb9-vmw:~/mapdata/nlni$ ls
tokyo
user@deb9-vmw:~/mapdata/nlni$ ogrinfo tokyo
INFO: Open of `tokyo' using driver `ESRI Shapefile' successful. 1: N03-17_13_170101 (Polygon)
user@deb8-vmw:~/mapdata/nlni$ ogrinfo -summary tokyo N03-17_13_170101
属性名は、INFO: Open of `tokyo' using driver `ESRI Shapefile' successful. Layer name: N03-17_13_170101 Metadata: DBF_DATE_LAST_UPDATE=2017-02-17 Geometry: Polygon Feature Count: 6210 Extent: (136.069520, 20.422746) - (153.986844, 35.898424) Layer SRS WKT: GEOGCS["GCS_JGD_2011", DATUM["JGD_2011", SPHEROID["GRS_1980",6378137.0,298.257222101]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]] 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.069520, 20.422746) - (153.986844, 35.898424)は座標で緯度経度を表し、レイヤの範囲が分かります。
これをもとに、マップファイルを作成します。
user@deb8-vmw:~/mapdata/nlni$ cd ../../mapfile/
user@deb8-vmw:~/mapfile$ vim tokyo_shp.map
shp2imgで地図を確認します。user@deb8-vmw:~/mapfile$ vim tokyo_shp.map
MAP NAME tokyo_shp_map #任意の名前 STATUS ON SIZE 600 300 EXTENT 136.069482 20.425119 153.986898 35.898424 #ogrinfoで得た情報から UNITS DD SHAPEPATH "../mapdata/nlni/tokyo" #シェイプファイルの相対位置 IMAGECOLOR 255 255 255
WEB IMAGEPATH "/home/user/public_html/ms_tmp/" IMAGEURL "/~user/ms_tmp/" END
LAYER NAME gyoseikuiki #任意の名前 TYPE POLYGON #ogrinfoで得た情報から STATUS ON DATA "N03-17_13_170101.shp" CLASS NAME "City Boundaries" #任意の名前 STYLE OUTLINECOLOR 153 153 153 #面の外周の色(灰色) END END END END #MAP END
user@deb9-vmw:~/mapfile$ shp2img -m tokyo_shp.map -o tokyo_shp.png
画像ビューワで確認すると、範囲が広すぎるのが分かります。
今回は、諸島部分を除いた範囲にします。
---
EXTENT 138.85 35.4 140 35.975
---
EXTENT 138.85 35.4 140 35.975
---
全体は次の様になります。
user@deb9-vmw:~/mapfile$ vim tokyo_shp.map
shp2imgで地図を確認します。MAP NAME tokyo_shp_map STATUS ON SIZE 600 300 EXTENT 138.85 35.4 140 35.975 #修正 UNITS DD SHAPEPATH "../mapdata/nlni/tokyo" IMAGECOLOR 255 255 255
WEB IMAGEPATH "/home/user/public_html/ms_tmp/" IMAGEURL "/~user/ms_tmp/" END
LAYER NAME gyoseikuiki TYPE POLYGON STATUS ON DATA "N03-14_13_140401.shp" CLASS NAME "City Boundaries" STYLE OUTLINECOLOR 153 153 153 END END END END #MAP END
user@deb9-vmw:~/mapfile$ shp2img -m tokyo_shp.map -o tokyo_shp.png
Web ブラウザのアドレスバーに次のように入力して Enter キーを押します。
http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=gyoseikuiki&map=/home/user/mapfile/tokyo_shp.map
7-4-4 LABELの日本語表示
地図に市区町村名を表示します。
地図に市区町村名(ラベル)を表示するには、マップファイルに次のように追加します。
--- LAYER NAME gyoseikuiki TYPE POLYGON STATUS ON DATA "N03-17_13_170101.shp" LABELITEM "N03_004" #LABELを使うときのフィールドの属性値の指定 CLASS NAME "City Boundaries" STYLE OUTLINECOLOR 153 153 153 END LABEL #追加 MINFEATURESIZE 40 #フィーチャがラベルを表示する最小サイズ END #LABEL END END ---
http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=gyoseikuiki&map=/home/user/mapfile/tokyo_shp.map
次のようにエラーが表示されました。
エラーログを見てみます。
root@deb9-vmw:~# vim /var/log/apache2/error.log
---
[Mon Jul 03 10:54:03.410475 2017] [cgid:error] [pid 2421:tid 140081675323136] [client ::1:36578] End of script output before headers: mapserv
---
[Mon Jul 03 10:54:03.410475 2017] [cgid:error] [pid 2421:tid 140081675323136] [client ::1:36578] End of script output before headers: mapserv
「End of script output before headers: mapserv」でネット検索すると cgi で文字コードが違うことでエラーが表示されることがあるとありました。属性 N03_004 の文字コードが shift-jis のためと思われます。
日本語を表示できるように次のようにします。
次の内容の fonts.txt というファイルを作成します。
マップファイルと同じフォルダに保存します。
user@deb9-vmw:~/mapfile$ vim fonts.txt
vl-gothic /usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
vl-pgothic /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
ipafont-gothic /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
ipafont-pgothic /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf
vl-gothic /usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
vl-pgothic /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
ipafont-gothic /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
ipafont-pgothic /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf
(それぞれパッケージ名は、fonts-vlgothic、 fonts-ipafont-gothicです。)
どれか1行でOKです。
[フォント名] [フォントがある場所の絶対パス] という内容になっています。
フォント名は任意のわかりやすい名前をつけてください。
パスは Synaptic パッケージマネージャで、例えば gothic で検索するとパッケージ一覧が表示されます。
インストールされているパッケージを選択し、プロパティをクリックしてインストール済みファイルタブをクリックすると、パスが表示されます。
インストールされていないときは、Synaptic パッケージマネージャでインストールしてください。(上記以外にも日本語フォントがあります。)
マップファイル全体は次のようになります。
MAP NAME tokyo_shp_map STATUS ON SIZE 600 300 EXTENT 138.85 35.4 140 35.975 UNITS DD SHAPEPATH "../mapdata/nlni/tokyo" IMAGECOLOR 255 255 255 FONTSET "fonts.txt" #追加
WEB IMAGEPATH "/home/user/public_html/ms_tmp/" IMAGEURL "/~user/ms_tmp/" END
LAYER NAME gyoseikuiki TYPE POLYGON STATUS ON DATA "N03-17_13_170101.shp" LABELITEM "N03_004" CLASS NAME "City Boundaries" STYLE OUTLINECOLOR 153 153 153 END
LABEL MINFEATURESIZE 40 TYPE TRUETYPE #フォントのタイプ FONT vl-gothic #fonts.txt で指定したフォント名 ENCODING SJIS #マップデータのエンコード SIZE 8 #フォントサイズ END END END END #MAP END
http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=gyoseikuiki&map=/home/user/mapfile/tokyo_shp.map
0 件のコメント:
コメントを投稿