2017年7月13日木曜日

Debian 9 - 10 Eclipse 4.7 "Oxygen" の設定

10 Eclipse 4.7 "Oxygen" の設定
OpenLayers 4 をテストするときに、Eclipse 4.6 "Oxygen" の「Eclipse IDE for JavaScript and Web Developers」パッケージを使用します。

10-1 Eclipse 4.7 "Oxygen" のダウンロード
Eclipse ホームページ
https://eclipse.org

の 「PACKAGES」 ボタンをクリックします。

Eclipse Downloads サイト
https://www.eclipse.org/downloads/eclipse-packages/

の 「Eclipse IDE for JavaScript and Web Developers」リンクをクリックします。

Eclipse IDE for JavaScript and Web Developers | Packages サイト
http://www.eclipse.org/downloads/packages/eclipse-ide-javascript-and-web-developers/oxygenr

の 「Download Links」の「Linux 64-bit」リンクをクリックします。

Eclipse downloads - Select a mirror サイト
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/oxygen/R/eclipse-javascript-oxygen-R-linux-gtk-x86_64.tar.gz

の 「DOWNLOAD」ボタンをクリックします。

次のようなダイアログ(FireFox の場合)が表示されるので、「ファイルを保存する」のラジオボタンが選択されていることを確認して「OK」ボタンをクリックします。


10-2 Eclipse 4.7 "Oxygen" のインストール
ダウンロードした
eclipse-javascript-oxygen-R-linux-gtk-x86_64.tar.gz
ファイルを解凍します。

user@deb9-vmw:~/ダウンロード$ ls
---
eclipse-javascript-oxygen-R-linux-gtk-x86_64.tar.gz
---
user@deb9-vmw:~/ダウンロード$ tar xvzf eclipse-javascript-oxygen-R-linux-gtk-x86_64.tar.gz

解凍した eclipse フォルダを /usr/local へ移動します。

user@deb9-vmw:~/ダウンロード$ su
パスワード:
root@deb9-vmw:/home/user/ダウンロード# mv eclipse/ /usr/local

/usr/local/bin/ 以下からシンボリックリンクを貼っておきます。

root@deb9-vmw:/home/user/ダウンロード# cd /usr/local/bin/
root@deb9-vmw:/usr/local/bin# ln -s /usr/local/eclipse/eclipse eclipse

10-3 jre のリンクを作成
JRE(Java Runtime Environment)の確認
Eclipse は Java で記述されているので、JRE(Java Runtime Environment)、または、OpenJDK Runtime Environment が必要です。次のコマンドで確認します。

root@deb9-vmw:/usr/local/bin# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Debianの場合、このままでは正常に起動しません。
次の手順でeclipseフォルダ直下にjreのリンクを作成します。

a 次のように /usr/lib/jvm のフォルダ一覧を確認します。
root@deb9-vmw:/usr/local/bin# ls /usr/lib/jvm/
default-java        java-1.8.0-openjdk-amd64
java-1.5.0-gcj-6-amd64    java-8-openjdk-amd64
b eclipseフォルダへ移動し、次のようにリンクを作成します。

root@deb9-vmw:/usr/local/bin# cd ../eclipse/
root@deb9-vmw:/usr/local/eclipse$ ln -s /usr/lib/jvm/java-8-openjdk-amd64 jre

次のようにしてリンクを確認します。

root@deb9-vmw:/usr/local/eclipse# ls -l
合計 432
---
lrwxrwxrwx  1 root  root      33  7月 12 11:28 jre -> /usr/lib/jvm/java-8-openjdk-amd64
---

10-4 Pleiades のインストール(日本語化)
表示が英語なので日本語化します。
色々ありますが、私は Pleiades プラグインをインストールしました。
以前は Eclipse の初回起動前にインストールしておいた方がいいようだったので、今回も一応そうしておきます。

MergeDoc Project
Pleiades
http://mergedoc.sourceforge.jp/

の「Pleiades プラグイン・ダウンロード」の「最新版ダウンロード」リンクをクリックします。

次のようなダイアログ(FireFox の場合)が表示されるので、「ファイルを保存する」のラジオボタンが選択されていることを確認して「OK」ボタンをクリックします。


pleiades フォルダを作成し、pleiades.zip をここへ移動して解凍します。

root@deb9-vmw:/usr/local/eclipse# exit
exit
user@deb9-vmw:~/ダウンロード$ ls
---
pleiades.zip
---
user@deb9-vmw:~/ダウンロード$ mkdir pleiades
user@deb9-vmw:~/ダウンロード$ mv pleiades.zip pleiades
user@deb9-vmw:~/ダウンロード$ cd pleiades/
user@deb9-vmw:~/ダウンロード/pleiades$ unzip pleiades.zip

readmeフォルダのreadme_pleiades.txtのインストールの項にしたがってインストールします。

a 解凍してできた plugins の中身(jp.sourceforge.mergedoc.pleiades)を eclipse の pulugins フォルダへ、features の中身(jp.sourceforge.mergedoc.pleiades)を eclipse の features フォルダへ移動します。

user@deb9-vmw:~/ダウンロード/pleiades$ su
パスワード:
root@deb9-vmw:/home/user/ダウンロード/pleiades# ls features/
jp.sourceforge.mergedoc.pleiades
root@deb9-vmw:/home/user/ダウンロード/pleiades# cp -r features/* /usr/local/eclipse/features/
root@deb9-vmw:/home/user/ダウンロード/pleiades# ls plugins/
jp.sourceforge.mergedoc.pleiades
root@deb9-vmw:/home/user/ダウンロード/pleiades# cp -r plugins/* /usr/local/eclipse/plugins/

b eclipse フォルダの eclipse.ini の最終行に以下の記述を追加します。

root@deb9-vmw:/home/user/ダウンロード/pleiades# cd /usr/local/eclipse/
root@deb9-vmw:/usr/local/eclipse# vim eclipse.ini
---
-Xverify:none
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

c は好みでやってもやらなくてもいいです。
起動画面が pleiades 風になります。
eclipse.ini の次の行の先頭に // を、最終行に「=default.splash」追加しました。

---
//-showsplash
//org.eclipse.epp.package.common
---
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=default.splash

起動の前に、念のため、eclipse フォルダ全体のユーザ:グループを root にします。

root@deb9-vmw:/usr/local/eclipse# cd ../
root@deb9-vmw:/usr/local# chown -R root:root eclipse

最初の起動は、clean オプションをつけて eclipse を実行します。

root@deb9-vmw:/usr/local# exit
user@deb9-vmw:~/ダウンロード/pleiades$ cd
user@deb9-vmw:~$
user@deb9-vmw:~$ eclipse -clean &


■参考■
次のようなメッセージ

Error opening zip file or JAR manifest missing : plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

が表示されたら、eclipse.ini に追加した行を絶対パスに修正します。

-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
->
-javaagent:/usr/local/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
■ここまで■


起動の途中で「Eclipse ランチャー」ウィンドウが表示されます。
「ワークスペース:」は「/home/user/eclipse-workspace」でとりあえず「起動」ボタンをクリックします。


起動した最初の画面で「ようこそ」タブを閉じます。



Debian 9 - 9 GeoServer の設定 2

9-2 GeoServer Getting Started

Documentation ページ
http://docs.geoserver.org/

の 「User Manual」の 「Getting Started」 の「stable」リンクをクリック。

Getting Started ページ
http://docs.geoserver.org/stable/en/user/gettingstarted/index.html

の「Using the web administration interface」をクリックします。

Using the web administration interface ページ
http://docs.geoserver.org/stable/en/user/gettingstarted/web-admin-quickstart/index.html

には、「Web Administration interface」の操作方法が記述されています。
これに沿って GeoServer を使ってみます。

「Logging In」
サーバの設定は、ログインして行います。
初期値のユーザ名とパスワードは、「admin」と「geoserver」です。
ユーザ名とパスワードの変更は、「Security」の「Passwods」をクリックして表示される「Passwods」ページ一番上の master password を変更します。
今回は変更しないで使いました。


ログインすると次のように表示されます。
データの下に注意事項が表示されます。



9-3 PostGIS Table の追加Getting Started ページ
http://docs.geoserver.org/stable/en/user/gettingstarted/index.html

の「Publishing a PostGIS Table」

をクリックします。

Publishing a PostGIS Table ページ
http://docs.geoserver.org/stable/en/user/gettingstarted/postgis-quickstart/index.html

9-3-1 Data preparation
データの準備
このブログの「Debian 9 - 8 PostGIS」で準備した nippon データベースの tokyo_kuiki テーブルを使用するので省略します。

9-3-2 Creating a new workspace
新しい Workspaces の作成

1 左側の欄の「Data」の「Workspaces」をクリックします。







2 「Worspaces」画面の「Add new worspace」をクリックします。





3 「New Workspace」で次のように入力します。

Name: npn (10文字以内)
ネームスペースURI: http://www.myhome.net/npn
(インターネット上の唯一(unique)の空間。実際に存在しなくてもいい。
公開予定がないなら上記のように適当に。)



4 「Default Workspace」にチェックをつけて、「Submit」ボタンをクリックします。


9-3-3 Creating a Store の追加
Store の作成
最初のステップは、PostGIS データベース "nippon" の データストア を作成します。
データストア は GeoServer にデータベースの接続の方法を教えます。

1 左側の欄の「Data」の「Stores」をクリックします。







2 「Stores」画面の「Add new Store」をクリックします。






3 「New data source」画面の「Vector Data Sources」の「PostGIS」をクリックします。









4 「Worspace」の初期設定は変えずに、「Basic Store Info」の「Data Source Name」と「Description」を入力します。

Worspace: npn (変更なし)
Data Source Name: nlni
Description: National Land Numerical Info. (説明、任意です)
Enabled: チェックする(変更なし)


5 「Connection Parameters」を指定します。
dbtype: postgis (変更なし)
host: localhost (変更なし)
port: 5432 (変更なし)
database: nippon
schema: public (変更なし)
user: user(tokyo_kuiki テーブルに接続できるユーザ)
password: ●●●●●●● (user がテーブルに接続するときのパスワード)
Namespace: http://www.myhome.net/npn(固定)
Expose primary keys:(transactional WFS を使用するときに必要 チェックなしのとき読み取り専用)
max connections: 10 (変更なし、任意です)
min connections: 1 (変更なし、任意です)
fetch size: 1000 (変更なし、任意です)
Batch insert size: 1 (変更なし、任意です)
Connection timeout: 20 (変更なし、任意です)
validate connections: チェックする(変更なし)
Test while idle: チェックする(変更なし)
Evictor run periodicity: 300(変更なし、任意です)
Max connection idle time: 300(変更なし、任意です)
Evictor tests per run: 3(変更なし、任意です)
Primary key metadata table: (空、変更なし、任意です)
Session startup SQL:(空、変更なし、任意です)
Session close-up SQL:(空、変更なし、任意です)
Callback factory:(空、変更なし、任意です)
Loose bbox: チェックする(変更なし)
Estimated extends: チェックする(変更なし)
preparedStatements: チェックしない(変更なし)
Max open prepared statements: 50 (変更なし、任意です)
encode functions: チェックしない(変更なし)
Support on the fly geometry simplification: チェックする(変更なし)
create database: チェックしない(変更なし)
create database params:(空、変更なし、任意です)

6 「Save」ボタンをクリックします。
追加されたレイヤ一覧が表示されます。



9-3-3 レイヤの追加
0 「ストア新規追加」から続けて操作しても OK です。
1 左側の欄の「Data」の「Layers」をクリックします。






2 「Add a new layer」をクリックします。







3 「New Layer」の「Add a new layer」の「Add layer from」ドロップダウンから「npn:nlni」を選択します。









4 nlni store のレイヤのリストが表示されます。
「tokyo_kuiki」の「Publish」をクリックします。


5 選択したレイヤのリソースと編集したい情報の設定をします。

「Basic Resource Info」を入力します。
Name: tokyo_kuiki (変更なし)
Enabled : チェック(変更なし)
Advertised: チェック(変更なし)
Title: Tokyo Kuiki (任意)
Abstract: National Land Numerical Info. Tokyo Kuiki (任意)


「Keywords」を入力します。
(「Keywords」に属性が追加できます。「Keyword」と「Vocabulary」です。)
Current Keywords: (追加したキーワードが表示されます)
New Keyword: 東京, 区域(右欄のリストから「日本語」を選択 任意)
Vocabulary: area, category(任意)(1つずつ入力して「Add Keyword」ボタンをクリック)

「Metadata links」と「Data links」と「Coordinate Reference Systems」は変更しません。

「座標参照系(CRS)」を入力します。
元ファイルSRS: 空(変更なし)
指定中のSRS: EPSG:4326 (「Find」ボタンをクリックして「4326」を検索して表示された「4326」をクリック)


SRS handling: Force decleard (変更しない)

「Bounding Boxes」を入力します。
ネイティブの範囲矩形: (「Compute from data」をクリック -以下の値が入力されました)
Min X: 138.798095703125
Min Y: 24.1661624908447
Max X: 142.269729614258
Max Y: 35.9567947387695
緯度経度範囲矩形: (「Compute from native bounds」をクリック -以下の値が入力されました)
Min X: 138.798095703125
Min Y: 24.1661624908447
Max X: 142.269729614258
Max Y: 35.9567947387695

「Curved geometries control」は変更しません。

6 ページ上部の「Publishing」タブをクリックします。

「WMS Settings」の「Layer Settings」の「Default Style」が「polygon」になっていることを確認します。
(他は変更しません。)








ページ下部の「Save」ボタンをクリックします。


「layers」ページの一番下に「tokyo_kuiki」が追加されます。


「Previewing the Layer」
1 左側の欄の「Data」の「Layer Preview」をクリックし、「tokyo_kuiki」を検索します。







2 「Common Formats」列の「OpenLayers」をクリックします。

3 成功すれば、OpenLayers Map がポリゴンで表示されます。
範囲が諸島部まで入っていました。















Debian 9 - 9 GeoServer の設定1

9-1 GeoServer のインストール
Web achive をインストールします。
Stable(2.11.x)をインストールしますが、

Debian
http://docs.geoserver.org/2.6.x/en/user/installation/linux/debian.html

も参考にします。

GeoServer のホームページ
http://geoserver.org/

の Documentation リンクをクリック。

Documentation ページ
http://docs.geoserver.org/

の 「User Manual」の 「User Manual」 の「stable」リンクをクリック。

GeoServer User Manual ページ
http://docs.geoserver.org/stable/en/user/

の「Introduction」をクリック。

Introduction ページ
http://docs.geoserver.org/stable/en/user/introduction/index.html#introduction

の「Overwiew」をクリックします。
そこに、GeoServer の概要があります。

GeoServer は、Java でかかれたオープンソースソフトウェアサーバです。
主要な地理空間データを OGC に準拠した WFS、WCS、WMS を実装しています。
ライセンスは、

License ページ
http://geoserver.org/license/

にあるように、GeoServerは、以下に説明するように、GNU General Public License の下で配布されています。詳しくはこのページを参照してください。
インストールは、

GeoServer User Manual ページ
http://docs.geoserver.org/stable/en/user/

の「Installation」をクリック。

Installation ページ
http://docs.geoserver.org/stable/en/user/installation/index.html

の「Web archive」をクリックします。

Web archive ページ
http://docs.geoserver.org/stable/en/user/installation/war.html


1 Java が動作しているか確認します。
Java 8 環境(Oracle JRE)または OpenJDK。

user@deb9-vmw:~$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

2 Web archive をダウンロードします。
「Download(http://geoserver.org/download/)」ページの「Stable(2017.7.6 現在 バージョン 2.11.1)」をクリック。

「Stable(http://geoserver.org/release/stable/)」ページの「Web Archive」をクリックしてダウンロード。

3 Tomcat8 をインストールします。
Synaptic パッケージマネージャで tomcat8 をインストールします。

4 ダウンロードしたファイルを解凍します。
(フォルダを作成して解凍すると作業がしやすいです。)

user@deb9-vmw:~$ cd ダウンロード
user@deb9-vmw:~/ダウンロード$ ls
---
geoserver-2.11.1-war.zip
---
user@deb9-vmw:~/ダウンロード$ mkdir geoserver
user@deb9-vmw:~/ダウンロード$ mv geoserver-2.11.1-war.zip geoserver
user@deb9-vmw:~/ダウンロード$ cd geoserver/
user@deb9-vmw:~/ダウンロード/geoserver$ unzip geoserver-2.11.1-war.zip
Archive:  geoserver-2.11.1-war.zip
  inflating: geoserver.war          
  inflating: GPL.txt                
  inflating: LICENSE.txt            
   creating: target/
  inflating: target/VERSION.txt

5 root で geoserver.war を /var/lib/tomcat8/webapps にコピーします。

user@deb9-vmw:~/ダウンロード/geoserver$ su
パスワード:
root@deb9-vmw:/home/user/ダウンロード/geoserver# cp geoserver.war /var/lib/tomcat8/webapps/

6 GeoServer の動作確認をします。
ブラウザのアドレスバーに http://localhost:8080/geoserver と入力し、Enter キーを押します。

エラーメッセージが表示されたら Apache を再起動します。


root@deb9-vmw:/home/user/ダウンロード/geoserver# apachectl -k graceful



Debian 9 - 8 PostGIS の設定

8-1 PostGIS のインストール
PostGIS は、リレーショナルデータベース管理ソフトPostgreSQLに格納されているデータを空間データとして利用するための拡張機能です。PostGIS を使って地図を表示します。
操作の前に PostgreSQL について調べておくといいでしょう。

Synaptic パッケージマネージャで PostGIS を検索して postgresql-9.6-postgis-2.3 をインストールすれば、必要なパッケージがすべてインストールされます。

PostgreSQL は postgres ユーザ(PostgreSQL の管理者)で操作します。
Debian は PostgreSQL をインストールすると自動的に postgres ユーザが作成されます。

user@deb9-vmw:~$ cut -d: -f1 /etc/passwd
---
user
postgres

postgresユーザにパスワードを設定します。

user@deb9-vmw:~$ su -
パスワード:
root@deb9-vmw:~# passwd postgres
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

PostgreSQL が動作しているテストしてみます。
端末でpostgres ユーザで次のように実行してください。

root@deb9-vmw:~# exit
ログアウト
user@deb9-vmw:~$ su - postgres
パスワード:
postgres@deb8-vmw:~$ psql -l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(3 行)

(END)
PostgreSQL にユーザを追加します。
ユーザはテストですのでセキュリティをあまり考えず、 Debian のユーザと同じにしました。

postgres@deb9-vmw:~$ createuser user

(user は Debianの一般ユーザと同じ)


8-2 データベースの作成
データベースを作成し、一般ユーザを登録します。
PostGIS ホームページ
http://postgis.net/

の Documentation ボタンをクリックします。

PostGIS - Documentation
http://postgis.net/documentation

の PostGIS 2.3(HTML)をクリックします。

PostGIS 2.3.3dev Manual
http://postgis.net/docs/manual-2.3/



Chapter 2. PostGIS Installation
http://postgis.net/docs/manual-2.1/postgis_installation.html

の 2.5. Creating a spatial database using EXTENSIONS を参考に東京都のデータのデータベースを作成します。

nippon というデータベースを作成します。

postgres@deb9-vmw:~$ createdb nippon
postgres@deb9-vmw:~$ psql -d nippon -c "CREATE EXTENSION postgis;"
CREATE EXTENSION
postgres@deb9-vmw:~$ psql -l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+----------+------------------+-------------+-------------------+-----------------------
 nippon    | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(4 行)

(END)
postgres@deb9-vmw:~$ psql nippon
psql (9.6.3)
"help" でヘルプを表示します.

nippon=# \d
                 リレーションの一覧
 スキーマ |       名前        |    型    |  所有者  
----------+-------------------+----------+----------
 public   | geography_columns | ビュー   | postgres
 public   | geometry_columns  | ビュー   | postgres
 public   | raster_columns    | ビュー   | postgres
 public   | raster_overviews  | ビュー   | postgres
 public   | spatial_ref_sys   | テーブル | postgres
(5 行)
geography_columns
ジオグラフィ型のカラム。「緯度/経度」を角度の単位(度)で表す地理座標「WGS 84経度緯度(SRID:4326)」だけサポートします。地球規模簿の2点間の距離を円弧で計算します。(4.2. PostGIS Geography Type 参照)
geometry_columns
ベクタデータで使用するジオメトリ型のカラム。
raster_columns
ラスタデータ型のカラム。
raster_overviews
基本ラスタテーブルの低解像度版カラム。
spatial_ref_sys
変換/再投影するために必要な空間参照系に関するOGC準拠のデータベーステーブル。

これらのオーナーを user に変更します。

nippon=# ALTER VIEW geography_columns OWNER TO user;
ALTER VIEW
nippon=# ALTER VIEW geometry_columns OWNER TO user;
ALTER VIEW
nippon=# ALTER VIEW raster_columns OWNER TO user;
ALTER VIEW
nippon=# ALTER VIEW raster_overviews OWNER TO user;
ALTER VIEW
nippon=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
nippon=# \d
                リレーションの一覧
 スキーマ |       名前        |    型    | 所有者 
----------+-------------------+----------+--------
 public   | geography_columns | ビュー   | user
 public   | geometry_columns  | ビュー   | user
 public   | raster_columns    | ビュー   | user
 public   | raster_overviews  | ビュー   | user
 public   | spatial_ref_sys   | テーブル | user
(5 行)

続けて東京都のデータを登録します。

nippon=# \q
postgres@deb9-vmw:~$ exit
ログアウト
user@deb9-vmw:~$ cd mapdata/nlni/tokyo/
user@deb9-vmw:~/mapdata/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
user@deb9-vmw:~/mapdata/nlni/tokyo$ shp2pgsql -W sjis N03-17_13_170101.shp tokyo_kuiki > tokyo_kuiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]

(shp2pgsql オプション -W カラムの属性の文字列を UTF-8 にエンコードします。
もし、「bash: shp2pgsql: コマンドが見つかりません」と表示されたら、Synaptic パッケージマネージャで「postgis」をインストールします。)

user@deb9-vmw:~/mapdata/nlni/tokyo$ psql -d nippon -f tokyo_kuiki.sql
user@deb9-vmw:~/mapdata/nlni/tokyo$ psql nippon
psql (9.6.3)
"help" でヘルプを表示します.

nippon=> \d
                  リレーションの一覧
 スキーマ |        名前         |     型     | 所有者 
----------+---------------------+------------+--------
 public   | geography_columns   | ビュー     | user
 public   | geometry_columns    | ビュー     | user
 public   | raster_columns      | ビュー     | user
 public   | raster_overviews    | ビュー     | user
 public   | spatial_ref_sys     | テーブル   | user
 public   | tokyo_kuiki         | テーブル   | user
 public   | tokyo_kuiki_gid_seq | シーケンス | user
(7 行)
nippon=> \d tokyo_kuiki
                                テーブル "public.tokyo_kuiki"
   列    |           型           |                          修飾語                           
---------+------------------------+-----------------------------------------------------------
 gid     | integer                | not null default nextval('tokyo_kuiki_gid_seq'::regclass)
 n03_001 | character varying(10)  | 
 n03_002 | character varying(20)  | 
 n03_003 | character varying(20)  | 
 n03_004 | character varying(20)  | 
 n03_007 | character varying(5)   | 
 geom    | geometry(MultiPolygon) | 
インデックス:
    "tokyo_kuiki_pkey" PRIMARY KEY, btree (gid)

(END)
一般ユーザ user のパスワードを設定します。

nippon=> ALTER USER user with password 'password(任意)';
ALTER ROLE
nippon=> \q

マップファイル tokyo_pgis.map を作成します。

user@deb9-vmw:~/mapdata/nlni/tokyo$ cd ../../../mapfile/
user@deb9-vmw:~/mapfile$ cp tokyo_shp.map tokyo_pgis.map
user@deb9-vmw:~/mapfile$ vim tokyo_pgis.map
MAP
 NAME tokyo_pgis_map
 STATUS ON
 SIZE 600 300
# EXTENT 136.069482 20.425119 153.986898 35.898424
 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"
  CONNECTIONTYPE POSTGIS
  CONNECTION "dbname=nippon host=localhost user=user password='password'"
  DATA "geom from tokyo_kuiki"
  LABELITEM "n03_004" #「n」が小文字であることに注意してください
  CLASS
   NAME "City Boundaries"
   STYLE
    OUTLINECOLOR 153 153 153
   END
   LABEL
    MINFEATURESIZE 40
    TYPE TRUETYPE
    FONT vl-gothic
    ENCODING UTF-8
    SIZE 8
   END
  END
 END
END #MAP END

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


8-3 属性カラム内の検索
データベースの属性カラム内の検索を実行して、地図を表示してみます。
国土数値情報の「4. 交通」の「空港間流通量」をデータベース nippon に登録します。

a 「JPGIS2.1」の「空港間流通量」をクリックします。

b 「データのダウンロード(2.各データ詳細)」で、「全国」のチェックボックスをクリックしてチェックし、「次へ」ボタンをクリックします。

c 「データのダウンロード(3.ファイルの選択)」で、最新のデータのチェックボックスをクリックしてチェックします。(2017-7-4現在 平成26年度)
「次へ」ボタンをクリックします。

d アンケートに回答します。

e データのダウンロード(4.国土数値情報利用約款)の内容を読み、「上記のことを理解しました。」で「はい」ボタンをクリックします。

f データのダウンロード(5.ダウンロード)で「ダウンロード」ボタンをクリックします。
ダイアログボックス---ダウンロードしますか?の「OK」ボタンをクリックします。

user@deb9-vmw:~/mapfile$ cd ../ダウンロードuser@deb9-vmw:~/ダウンロード$ ls
---
S10b-14_GML.zip
---
user@deb9-vmw:~/ダウンロード$ mkdir kotsu
user@deb9-vmw:~/ダウンロード$ mv S10b-14_GML.zip kotsu/
user@deb9-vmw:~/ダウンロード$ cd kotsu/user@deb9-vmw:~/ダウンロード/kotsu$ ls
S10b-14_GML.zip
user@deb9-vmw:~/ダウンロード/kotsu$ unzip -j S10b-14_GML.zip
Archive:  S10b-14_GML.zip
  inflating: KS-META-S10b-14.xml     
  inflating: KsjAppSchema-S10b-v1_1.xsd  
  inflating: S10b-14.xml             
  inflating: S10b-14_BetAport.dbf    
  inflating: S10b-14_BetAport.shp    
  inflating: S10b-14_BetAport.shx
user@deb9-vmw:~/ダウンロード/kotsu$ ls
KS-META-S10b-14.xml         S10b-14_BetAport.dbf  S10b-14_GML.zip
KsjAppSchema-S10b-v1_1.xsd  S10b-14_BetAport.shp
S10b-14.xml                 S10b-14_BetAport.shx
user@deb9-vmw:~/ダウンロード/kotsu$ cd ../
user@deb9-vmw:~/ダウンロード$ mv kotsu/ ../mapdata/nlni/
user@deb9-vmw:~/ダウンロード$ cd ../mapdata/nlni/kotsu/
user@deb9-vmw:~/mapdata/nlni/kotsu$ shp2pgsql -W sjis S10b-14_BetAport.shp logi_amt_bw_airport > logi_amt_bw_airport.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@deb9-vmw:~/mapdata/nlni/kotsu$ psql -d nippon -f logi_amt_bw_airport.sql
user@deb9-vmw:~/mapdata/nlni/kotsu$ cd
user@deb9-vmw:~$ psql nippon
psql (9.6.3)
"help" でヘルプを表示します.

nippon=> \dt
                 リレーションの一覧
 スキーマ |        名前         |    型    | 所有者 
----------+---------------------+----------+--------
 public   | logi_amt_bw_airport | テーブル | user
 public   | spatial_ref_sys     | テーブル | user
 public   | tokyo_kuiki         | テーブル | user
(3 行)
nippon=> \d logi_amt_bw_airport
                                  テーブル "public.logi_amt_bw_airport"
    列    |            型             |                              修飾語                               
----------+---------------------------+-------------------------------------------------------------------
 gid      | integer                   | not null default nextval('logi_amt_bw_airport_gid_seq'::regclass)
 s10b_001 | character varying(36)     | 
 s10b_002 | character varying(36)     | 
 s10b_003 | character varying(36)     | 
 s10b_004 | character varying(36)     | 
 s10b_005 | double precision          | 
 s10b_006 | double precision          | 
 s10b_007 | double precision          | 
 s10b_008 | double precision          | 
 s10b_009 | double precision          | 
 geom     | geometry(MultiLineString) | 
インデックス:
    "logi_amt_bw_airport_pkey" PRIMARY KEY, btree (gid)

(End)
nippon=> \q

user@deb9-vmw:~$ cd mapfile/
user@deb9-vmw:~/mapfile$ vim tokyo_pgis.map
---
 LAYER
  NAME kukokanryutsuryo
  TYPE LINE
  STATUS ON
#  DATA "S10b-14_BetAport.shp"
  CONNECTIONTYPE POSTGIS
  CONNECTION "dbname=nippon host=localhost user=user password='password'"
#  DATA "geom from logi_amt_bw_airport"
  DATA "geom from (select * from logi_amt_bw_airport where s10b_001 = '東京') as myquery using unique geom using srid = -1"
  OPACITY 80
  LABELITEM "s10b_004"
  CLASS
   NAME "Kuko Ryutsu"
   STYLE
    COLOR 0 255 0
   END
   LABEL
    MINFEATURESIZE 5
    POSITION lc
    TYPE TRUETYPE
    FONT kochi-gothic
    ENCODING UTF-8
    SIZE 8
   END
  END
 END
---

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


8-4 pgAdminIII
pgAdminIII を使ってデータベースに接続します。

Introduction to PostGIS
http://workshops.boundlessgeo.com/postgis-intro/

の「4. Creating a Spatial Database(http://workshops.boundlessgeo.com/postgis-intro/creating_db.html)」を参考にします。
(次のように開きます。
PostGIS ホームページ
http://postgis.net/

の Documentation ボタンをクリックします。

PostGIS - Documentation
http://postgis.net/documentation

の「Tutorials, Cheatsheets, and Books」の「Tutorial: Introduction to PostGIS」をクリックします。

Introduction to PostGIS
http://workshops.boundlessgeo.com/postgis-intro/

の「Workshop Modules」の「4. Creating a Spatial Database」をクリックします。)

Synaptic パッケージマネージャで pgAdminIII をインストールします。

1 アクティビティ -> アプリケーションを表示する(左側の一番下のアイコン) -> pgAdminIII(2面めぐらい)
をクリックして起動します。


2 「サーバに接続の追加ボタン」
をクリックします。





3 「新しいサーバ登録」の「プロパティ」タブに次のように入力して「OK」ボタンをクリックします。

名前: PostGIS(任意)
ホスト: localhost
Port: 5432
サービス: (空欄)
DBメンテナンス: postgres
ユーザ名: user(postgres ユーザ)
パスワード: ●●●●●●●●(postgres ユーザのパスワード)

(その他はそのままで)

「指導的ヒント・パスワード保存」ウィンドウが表示されたら「OK」ボタンをクリックします。








4 ツリーを開いていくと次のようになります。










5 テーブルtokyo_kuiki をクリックして選択し、「選択オブジェクトでデータをビュー」ボタンをクリックすると属性が表示されます。






Debian 9 - 7 MapServer でマップファイルのテスト2

7-4 東京都の地図を表示
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
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
データがどのようになっているか、N03-17_13_170101.dbf を LibreOffice Calc で開きます。
(データ量が多いと開かない場合があります。)
アクティビティ -> アプリケーションを表示する(左側の一番下のアイコン) -> 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
INFO: Open of `tokyo'
      using driver `ESRI Shapefile' successful.
1: N03-17_13_170101 (Polygon)
次に、N03-17_13_170101 レイヤのデータを表示します。

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
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
shp2imgで地図を確認します。

user@deb9-vmw:~/mapfile$ shp2img -m tokyo_shp.map -o tokyo_shp.png


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

---
EXTENT 138.85 35.4 140 35.975
---

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

user@deb9-vmw:~/mapfile$ vim tokyo_shp.map
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
shp2imgで地図を確認します。

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
---
Web ブラウザのアドレスバーに次のように入力して Enter キーを押します。

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

「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

(それぞれパッケージ名は、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
Web ブラウザのアドレスバーに次のように入力して Enter キーを押します。

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