|
||||||||||
| 1 2 3 次のページ | ||||||||||
| MapScript | ||||||||||
|
次にスクリプトからレイヤーの操作を行ってみましょう。スクリプトでレイヤーの操作を行うには、MapScriptを使用します。MapScriptについては、すでに第2回に掲載したリスト1のスクリプトの中でms_newMapObj()関数やsetSize()メソッドなどを使用しています。MapScriptのリファレンスは下記のURLから参照することができます。
MapScript のリファレンス
http://mapserver.gis.umn.edu/docs/reference/phpmapscript-class/ referencemanual-all-pages 今回はスクリプトから市区町村の名前を表示するレイヤーを追加してみましょう。サンプルをリスト5に掲載します。表示は図4のようになります。 リスト5
1 <?php
PHPスクリプトからレイヤーはms_newLayerObj()関数で追加することができます。作成されてすぐの状態では何の設定もされていないので、各種プロパティをset()メソッドで指定します。ですが、ms_newLayerObj()関数の第2引数に他のレイヤーを指定することで、そのレイヤーのコピーを取得することができます。 これは後述のms_newClassObj()関数でも同様です。TYPEは第2回に掲載したリスト2のMapファイルではPOLYGONとしていましたが、テキストを表示する場合はANNOTATIONを指定する必要があります。MapScriptから指定する場合は、定数のMS_LAYER_ANNOTATIONを指定します。また、テキストとして表示するテーブルのフィールド名をLABELITEMで指定します。今回の場合はcn2となります。 レイヤーのプロパティを設定したら、次にクラスをレイヤーに追加します。クラスの追加はレイヤーの時とあまり変わらず、ms_newClassObj()関数で追加することができます。テキストを表示する場合はクラスのプロパティを設定する必要はあまりなく、ラベルで文字の設定を行います。ラベルはクラスの中に含まれているので、$class->label->set()というようにラベルのプロパティを設定します。 また前述したリスト5で指定しているのは、文字のサイズとフォントの種類(BITMAPかTRUETYPE)、フォント、データの文字コード、文字の色です。リスト5ではフォントにgothicと指定しています。日本語を表示するには日本語用のフォントを使用できるように、MAPオブジェクト内でFONTSETというフォントのパスを記述したファイルを指定しなければなりません。すでに作成しているfont.leがそのためのファイルです。
FONTSET "./fontfile"
FONTSETに指定したMap ファイルと同じディレクトリにあるfont.le には以下のように記述します。
gothic /usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf
fontfileはMapScriptもしくはMapファイル内でフォントを指定するための名前とフォントのパスをセットで記述します。フォントのパスについては適宜変更してください。また、レイヤーの設定の変更も簡単に行うことができます。 そのためには、レイヤーをgetLayer()メソッドもしくはgetLayerByName()メソッドで取得します。getLayer()メソッドの引数にはレイヤーの番号を指定します。この番号は0 から始まり、Mapファイルに記述された順番に増えていきます。getLayerByName()メソッドはその名の通りMapファイルでNAMEに指定した文字列を引数に指定します。 レイヤーの数は$map->numlayersに保存されているので、すべてのレイヤーについて処理を行うのであれば、以下のようにします。
for ($i = 0; $i < $map->numlayers; $i++) {
名前を指定したレイヤーを表示しないようにするのであれば、以下のようにします。
for ($i = 0; $i < $map->numlayers; $i++) {
同様にクラスを取得する場合はレイヤーに対してgetClass()メソッドを使用します。こちらは名前での取得ができませんが、クラスの数は$layer->numclassesから取得することができます。 サンプルとしてスクリプトからレイヤーを追加してみましたが、実をいうとこの機能は実際にはあまり使用しません。では、どのような機能を使うのかというと、レイヤーのON、OFFの切り替え、設定の一部変更などでしょう。 アプリケーションを作成するのに、GETやPOSTなどの変数からOFFにするレイヤー、ONにするレイヤーが指定されたり、色の指定が行われる場合です。 |
||||||||||
|
1 2 3 次のページ |
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||


