6-1 MapServer のインストール
インストールされていないときは、Synaptic パッケージマネージャで cgi-mapserver をインストールしてください。
Mapserver のバージョンは 7.2.2 です。
インストールの確認は、Web ブラウザに
http://localhost/cgi-bin/mapserv
と入力して Enter キーを押し、
No query information to decode. QUERY_STRING is set, but empty.
と表示されれば OK です。
もし、次のように表示されたら CGI が動作していません。
CGI のモジュールは /etc/apache2/mods-available/cgi.load ファイルです。
user@deb10-vmw:~$ su -
パスワード:
root@deb10-vmw:~# ls /etc/apache2/mods-available/
---
cgi.load
cgid.conf
cgid.load
---
パスワード:
root@deb10-vmw:~# ls /etc/apache2/mods-available/
---
cgi.load
cgid.conf
cgid.load
---
このファイルが有効になっているかは /etc/apache2/mods-enable/ でわかります。
root@deb10-vmw:~# ls /etc/apache2/mods-enabled/
cgid.conf がないので有効にします。
root@deb10-vmw:~# a2enmod cgi
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
To activate the new configuration, you need to run:
systemctl restart apache2
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
To activate the new configuration, you need to run:
systemctl restart apache2
Apache2 を再起動してください。
root@deb10-vmw:~# apachectl -k graceful
root@deb10-vmw:~# ls /etc/apache2/mods-enabled/
---
cgid.conf
cgid.load
---
root@deb10-vmw:~# ls /etc/apache2/mods-enabled/
---
cgid.conf
cgid.load
---
Web ブラウザに
http://localhost/cgi-bin/mapserv
と入力して Enter キーを押し、
No query information to decode. QUERY_STRING is set, but empty.
と表示されれば OK です。
6-2 mapserver-bin gdal-binのインストール
MapServer を使用する上で便利なユーティリティソフトを Synaptic パッケージマネージャでインストールしておきます。
6-3 一時フォルダの作成
MapServerでは、表示するための画像が生成されますが、これを保存する一時保存フォルダを作成します。
次のように入力してEnterキーを押します。
root@deb10-vmw:~# exit
ログアウト
user@deb10-vmw:~$ cd public_html/
user@deb10-vmw:~/public_html$ mkdir ms_tmp
ログアウト
user@deb10-vmw:~$ cd public_html/
user@deb10-vmw:~/public_html$ mkdir ms_tmp
次のように入力すると所有者(オーナ)とグループが表示されます。
user@deb10-vmw:~/public_html$ ls -l
---
drwxr-xr-x 2 user user 4096 9月 18 14:38 ms_tmp
---
---
drwxr-xr-x 2 user user 4096 9月 18 14:38 ms_tmp
---
MapServerがこのフォルダに画像を保存できるようにするには、所有者とグループを Apache2 の実行ユーザの www-data にします。(rootで)
(/etc/apache2/envvars に
---
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
---
と記述があります。)export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
---
user@deb10-vmw:~/public_html$ su
パスワード:
root@deb10-vmw:/home/user/public_html# chown www-data:www-data ms_tmp
パスワード:
root@deb10-vmw:/home/user/public_html# chown www-data:www-data ms_tmp
このフォルダの所有者とグループを確かめてみます。
root@deb10-vmw:/home/user/public_html# ls -l
---
drwxr-xr-x 2 www-data www-data 4096 9月 18 14:38 ms_tmp
---
---
drwxr-xr-x 2 www-data www-data 4096 9月 18 14:38 ms_tmp
---
6-4 動作確認
Demo Application の準備
MapServer Download ページ
http://mapserver.org/download.html
「Download」の「Demo Application」の「MapServer 5.4.x Demo」リンクをクリックしてダウンロードします。
root@deb10-vmw:/home/user/public_html# exit
exit
user@deb10-vmw:~/public_html$ cd ../ダウンロード
user@deb10-vmw:~/ダウンロード$ ls
---
workshop-5.4.zip
---
exit
user@deb10-vmw:~/public_html$ cd ../ダウンロード
user@deb10-vmw:~/ダウンロード$ ls
---
workshop-5.4.zip
---
ダウンロードした workshop-5.4.zip を解凍します。
user@deb10-vmw:~/ダウンロード$ unzip workshop-5.4.zip
user@deb10-vmw:~/ダウンロード$ ls
---
workshop-5.4
workshop-5.4.zip
---
user@deb10-vmw:~/ダウンロード$ ls
---
workshop-5.4
workshop-5.4.zip
---
解凍した workshop-5.4 フォルダを public_html に移動します。
user@deb10-vmw:~/ダウンロード$ mv workshop-5.4/ ../public_html/
user@deb10-vmw:~/ダウンロード$ cd ../public_html/
user@deb10-vmw:~/public_html$ ls
index.html ms_tmp workshop-5.4
user@deb10-vmw:~/ダウンロード$ cd ../public_html/
user@deb10-vmw:~/public_html$ ls
index.html ms_tmp workshop-5.4
index.html のコードを修正します。
user@deb10-vmw:~/public_html$ cd workshop-5.4/
user@deb10-vmw:~/public_html/workshop-5.4$ ls
---
index.html
---
user@deb10-vmw:~/public_html/workshop-5.4$ vim index.html
---
The base data is the old-reliable Itasca dataset that we know and love...
<!-- EDIT THE FORM ACTION -->
<!--
<form name="demo" method="GET" action="/cgi-bin/mapserv54" onSubmit="configure()">
-->
<form name="demo" method="GET" action="/cgi-bin/mapserv" onSubmit="configure()">
<input type="hidden" name="layer" value="lakespy2">
<input type="hidden" name="layer" value="dlgstln2">
<input type="hidden" name="zoomsize" value=2>
<input type="hidden" name="map_web" value="">
<!-- EDIT THESE HIDDEN VARIABLES -->
<!--
<input type="hidden" name="map" value="/usr/local/www/docs_maps/mapserver_demos/workshop-5.4/itasca.map">
<input type="hidden" name="program" value="/cgi-bin/mapserv54">
<input type="hidden" name="root" value="/mapserver_demos/workshop-5.4">
-->
<input type="hidden" name="map" value="/home/user/public_html/workshop-5.4/itasca.map">
<input type="hidden" name="program" value="/cgi-bin/mapserv">
<input type="hidden" name="root" value="/~user/workshop-5.4">
---
itasca.map のコードを修正します。user@deb10-vmw:~/public_html/workshop-5.4$ ls
---
index.html
---
user@deb10-vmw:~/public_html/workshop-5.4$ vim index.html
---
The base data is the old-reliable Itasca dataset that we know and love...
<!-- EDIT THE FORM ACTION -->
<!--
<form name="demo" method="GET" action="/cgi-bin/mapserv54" onSubmit="configure()">
-->
<form name="demo" method="GET" action="/cgi-bin/mapserv" onSubmit="configure()">
<input type="hidden" name="layer" value="lakespy2">
<input type="hidden" name="layer" value="dlgstln2">
<input type="hidden" name="zoomsize" value=2>
<input type="hidden" name="map_web" value="">
<!-- EDIT THESE HIDDEN VARIABLES -->
<!--
<input type="hidden" name="map" value="/usr/local/www/docs_maps/mapserver_demos/workshop-5.4/itasca.map">
<input type="hidden" name="program" value="/cgi-bin/mapserv54">
<input type="hidden" name="root" value="/mapserver_demos/workshop-5.4">
-->
<input type="hidden" name="map" value="/home/user/public_html/workshop-5.4/itasca.map">
<input type="hidden" name="program" value="/cgi-bin/mapserv">
<input type="hidden" name="root" value="/~user/workshop-5.4">
---
user@deb10-vmw:~/public_html/workshop-5.4$ vim itasca.map
--- WEB HEADER templates/header.html TEMPLATE "set in index.html" FOOTER templates/footer.html MINSCALE 1000 MAXSCALE 1550000
# change the next two lines to match your setup # IMAGEPATH "/usr/local/www/docs_maps/tmp/" # IMAGEURL "/tmp/" IMAGEPATH "/home/user/public_html/ms_tmp/" # 追加 IMAGEURL "/~user/ms_tmp/" # 追加
METADATA WMS_TITLE "UMN MapServer Itasca Demo" WMS_ABSTRACT "This is a UMN MapServer application for Itasca County located in north central Minnesota." WMS_ACCESSCONSTRAINTS "none" # change this value to match your setup WMS_ONLINERESOURCE "http://localhost.localdomain/mapserver_demos/itasca/index.html" WMS_SRS "EPSG:26915" END END ---
Webブラウザのアドレスバーに次のように入力してEnterキーを押します。
http://localhost/~user/workshop-5.4/index.html
ページが表示されたら 「Initialize」 ボタンをクリックします。
次のようなメッセージが表示されたました。
loadLayer(): Unknown identifier. Annotation Layers have been removed. To obtain same functionality, use a layer with label->styles and no class->styles
これは、TYPE annotation がなくなったためです。
MapServer のドキュメント「LAYER(http://mapserver.org/mapfile/layer.html#layer)」に次のようにあります。
Note: TYPE annotation has been deprecated since version 6.2. Identical functionality can be obtained by adding LABEL level STYLE blocks, and do not require loading the datasets twice in two different layers as was the case with layers of TYPE annotation.
TYPE annotation は、6.2 バージョン以降、非推奨になりました。同様の機能は、LABEL レベルの STYLE ブロックを追加することによって得られ、TYPE annotation のレイヤを使用した場合のように、2つの異なるレイヤにデータセットを2度ローディングする必要がありません。
TYPE annotation は、6.2 バージョン以降、非推奨になりました。同様の機能は、LABEL レベルの STYLE ブロックを追加することによって得られ、TYPE annotation のレイヤを使用した場合のように、2つの異なるレイヤにデータセットを2度ローディングする必要がありません。
itasca.map のコードで、次の3つのレイヤ ctyrdln3_anno、majrdln3_anno、mcd90py2_anno をすべてコメントアウトします。
--- # LAYER # NAME ctyrdln3_anno # GROUP roads # MAXSCALE 300000 # STATUS OFF # DATA ctyrdln3 # TYPE ANNOTATION --- # LAYER # NAME majrdln3_anno # GROUP roads # MAXSCALE 600000 # STATUS OFF # DATA majrdln3 # TYPE ANNOTATION --- # LAYER # NAME mcd90py2_anno # GROUP cities # TYPE ANNOTATION ---
ctyrdln3_anno、majrdln3_anno、mcd90py2_anno のレイヤを次のように修正します。
--- LAYER NAME mcd90py2 GROUP cities TYPE POLYGON DATA mcd90py2 STATUS OFF LABELITEM city_name # 追加 CLASSITEM city_name CLASS NAME "Cities & Towns" EXPRESSION /./ STYLE COLOR 255 225 90 END LABEL # 追加 COLOR 0 0 0 SHADOWCOLOR 218 218 218 SHADOWSIZE 2 2 TYPE BITMAP SIZE MEDIUM POSITION CC PARTIALS FALSE BUFFER 2 END # ここまで TEMPLATE "templates/mcd90py2.html" END --- LAYER NAME ctyrdln3 GROUP roads MAXSCALE 300000 STATUS OFF DATA ctyrdln3 TYPE LINE LABELITEM "road_name" # 追加 CLASS STYLE COLOR 0 0 0 END LABEL # 追加 MINFEATURESIZE 40 MINDISTANCE 150 POSITION CC SIZE TINY COLOR 0 0 0 STYLE COLOR 255 255 255 SYMBOL 'symbols/ctyhwy.png' END END # ここまで --- LAYER NAME majrdln3 GROUP roads MAXSCALE 600000 STATUS OFF DATA majrdln3 TYPE LINE LABELITEM "road_num" # 追加 CLASSITEM "road_class" # 追加 CLASS NAME "Roads" STYLE COLOR 0 0 0 END LABEL # 追加 EXPRESSION "3" MINFEATURESIZE 50 MINDISTANCE 150 POSITION CC SIZE TINY COLOR 0 0 0 STYLE COLOR 0 0 0 # dummy color SYMBOL 'symbols/sthwy.png' END END LABEL EXPRESSION "2" MINFEATURESIZE 50 MINDISTANCE 150 POSITION CC SIZE TINY COLOR 0 0 0 STYLE COLOR 0 0 0 # dummy color SYMBOL 'symbols/ushwy.png' END END LABEL EXPRESSION "1" MINFEATURESIZE 50 MINDISTANCE 150 POSITION CC SIZE TINY COLOR 255 255 255 STYLE COLOR 0 0 0 # dummy color SYMBOL 'symbols/interstate.png' END END # ここまで END ---
地図が表示されたら成功です。
0 件のコメント:
コメントを投稿