layerObjはmapObjに所属しています。最近の修正はlayerObjのインスタンスがmapObjオブジェクトの外に配置できます。
+-------+ 0..* 0..1 +-----+
| Layer | <--------> | Map |
+-------+ +-----+
もうひとつの組合せはclassObjオブジェクトとhashTableObjです。
+-------+ 1 0..* +-------+
| Layer | <--------> | Class |
+-------+ +-------+
+-------+ 1 1 +-----------+
| Layer | ---------> | HashTable |
+-------+ | -- |
| metadata |
+-----------+
4.11.1 layerObj 属性
bandsitem : string
この属性は、使用するラスタデータソースのバンドを指定できます。通常はディフォルト値NULLとなります。
classitem : string
適用するクラスの識別に使用する属性テーブルでの項目名。
connection : string
レイヤの接続文字列あるいはDSN。
connectiontype : int
接続のタイプを表す。設定可能の値はmap.hのMS_CONNECTION_TYPEを参照してください。
data : string
レイヤデータの定義。この値の内容はconnectiontypeに依存しています。
debug : int
レイヤディバッグ、MS_ON あるいはMS_OFF (ディフォルト).
dump : int
MapserverにデータをGMLフォーマットで返すかどうかを切り替える。MS_TRUEあるいはMS_FALSE。ディフォルトはMS_FALSE。
extent : rectObj
レイヤの範囲を指定します。
filteritem : string
簡単なFILTER表現を適用するアイテム。
footer : string
フッタテンプレートです。
group : string
このレイヤが属するグループの名称。
header : string
ヘッダテンプレートです。
index : int immutable
マップ内すべてレイヤのインデックスです。
labelangleitem : string
回転角を分類するために使用される、属性テーブルでの項目名。
labelcache : int
ラベルが、描画されるこのレイヤの地物として描画されるのか、キャッシュされ、全てのレイヤが描画された後に描画されるのかを指定する。デフォルトはonである。
labelitem : string
ラベルを表示するために使用される属性テーブルでの項目名。
labelmaxscale : float
ラベル処理がなされる最大スケール。
labelminscale : float
ラベル処理がなされる最小スケール。
labelrequires : string
このレイヤにラベル処理のコンテキストを設定する。
labelsizeitem : string
ラベルサイズを設定するのに用いられる属性テーブルでの項目名。
map : mapObj immutable
親マップの参照です。
maxfeatures : int
現在のウィンドウでのこのレイヤで表示される地物の数を指定する。
maxscale : float
このレイヤが描画される最大スケール。
metadata : hashTableObj immutable
メタデータです。
minscale : float
レイヤが描画される最小スケール。
name : string
レイヤの名前です。
numclasses : int immutable
レイヤ内定義されたクラスの数です。
numitems : int immutable
レイヤ属性項目の数です。
numjoins : int immutable
レイヤ内定義されたjoinの数です。
numprocessing : int immutable
レイヤ内に定義されたラスタprocessingの数です。
offsite : colorObj
ラスタレイヤの透過色として扱う色。
postlabelcache : int
このレイヤをキャッシュされた全てのラベルが表示された後に処理するかどうか。きれいな線や同様の要素を追加するのに有用である。デフォルトはfalse。
requires : string
このレイヤを表示するコンテキストを設定する。
sizeunits : int
CLASSオブジェクトのSIZE値の単位を設定する。MS_INCHES, MS_FEET, MS_MILES, MS_METERS, MS_KILOMETERS, MS_DDあるいはMS_PIXELS。
status : int
レイヤの現在の状態を設定する。MS_ON, MS_OFF或いは MS_DEFAULT。
styleitem : string
地物のスタイルを指定する項目。
symbolscale : float
シンボルとテキストをフルサイズで表示するスケール。
template : string
CLASS TEMPLATE に対するグローバルなものとして用いられる。このレイヤに対して検索する場は、必ず設定しなければなりません。
tileindex : string
このレイヤで定義するインデックスもしくはタイルの完全なファイル名。
tileitem : string
個々のタイルの位置を含んでいる項目名。デフォルトは"location"。
tolerance : float
点を基準としたクエリにおける許容範囲(マウスもしくは地図の座標系による)。
toleranceunits : int
TOLERANCE値の単位。MS_INCHES, MS_FEET, MS_MILES, MS_METERS, MS_KILOMETERS, MS_DD或いはMS_PIXELS。
transform : int
Mapserverに対してこのレイヤをある座標系から画像の座標系へと変換する必要があるかどうかを設定する。MS_TRUE或いはMS_FALSE。ディフォルトはMS_TRUEです。
transparency : int
レイヤでの全ての整えられたピクセルの透過レベルを設定する。値は0から100の間の整数値もしくは"ALPHA"という名のシンボルであたえられる。このパラメータは"透過度"であるにも関わらず、整数値は実際にはレイヤの不透明度を表している。値が100の場合、不透明であり、0で完全に透過となる。
"ALPHA"シンボルはMapserverにインデックスされ、もしくはα値の透過の持つピクスマップのシンボルをレイヤのスタイルを用いて処理するように指示することになる。これはRGBの出力フォーマットの場合にのみ必要とされる。 RGBの地図画像に対して透過するピクスマップのシンボルを描画する行為はコスト高いな処理となるので、必要となる場合にのみ用いられるべきである。
type : int
レイヤの種別です。map.hのMS_LAYER_TYPEを参照してください。
units : int
レイヤデータの単位です。
4.11.2 layerObj メソッド
new layerObj( [ mapObj parent_map=NULL ] ) : layerObj
親マップ内にレイヤオブジェクトを新規作成します。作成されたレイヤのインデックスは(numlayers - 1)となります。parent_mapを指定によって、指定されたマップにレイヤを作成することも可能です。
addFeature( shapeObj shape ) : int
レイヤにインラインフィーチャーを追加します。
addProcessing( string directive ) : void
レイヤにPROCESSINGを追加します。
applySLD( string sld, string stylelayer ) : int
レイヤにSLDドキュメントを適用します。
applySLDURL( string sld, string stylelayer ) : int
URLでレイヤにSLDドキュメントを適用します。
clearProcessing() : int
PROCESSINGを削除します。
clone() : layerObj
親マップを持ってないレイヤコピーを作成します。
close() : void
レイヤをクローズします。
draw( mapObj map, imageObj image ) : int
単一レイヤを描画します。指定した場合、ラベルをキャッシュに入れます。
drawQuery( mapObj map, imageObj image ) :
単一レイヤの照会結果地図を描画します。
executeWFSGetFeature( layer ) : string
WFSレイヤのGetFeatureを実行し、一時GMLファイルを作成してファイル名を返します。エラーの場合は空文字列を返します。
generateSLD() : void
レイヤのすべてのクラスをベースしてSLD XML文字列を戻ります。
getClass( int i ) : classObj
indexを与えてレイヤからclassObjを返します。indexは大きすぎの場合はNULLを返します。最初のクラスのインデックスは0になります。
getExtent() : rectObj
レイヤの範囲を取得します。
getFeature( int shapeindex [, int tileindex=-1 ] ) : shapeObj
レイヤからインデックスによってshapeObjを取得します。
getFilterString() : string
レイヤのFILETR式を取得します。
getFirstMetaDataKey() : string
メタデータハッシュテーブル内の最初のキーを返します。getNextMetaDataKey()でその他のキーも取得できます。
getItem( int i ) : string
インデックスを与えて、項目を返します。
getMetaData( string key ) : string
レイヤのmetadataエントリーをkeyによってフェッチします。
getNextMetaDataKey( string lastkey ) : string
メッタハッシュテーブルの次のキーを返します、次のキーは最後のキーになる場合は、NULLを戻ります。
最後のキーはNULLになった場合は、繰り返し最初のキーを返します。
注意
現時点、getFirstMetaDataKey(), getMetaData()とgetNextMetaDataKey()は非推奨となっています、将来的に削除される可能性があります。代わりに直接 metadataをアクセスしてください。hashTableObjを参照してください。
getNumFeatures() : int
インラインフィーチャーの数を返します。
getNumResults() : int
このレイヤの最後の照会結果数を返します。
getProcessing( int index) : string
processing文字列を含む配列を返します。
getProjection( ) : string
投影の文字列表現を返します。
getResult( int i ) : resultCacheMemberObj
レイヤオブジェクトからindexによってresultCacheMemberObjを返します。indexは0からnumresults-1の範囲です。indexが不正な場合はNULLを返します。
getResults() : resultCacheObj
照会結果キャッシュの参照を返します。
getShape( shapeObj shape, int tileindex, int shapeindex ) : int
v5.0より非推奨となりました、変わりにgetFeature()を利用ください。
getWMSFeatureInfoURL( mapObj map, int click_x, int click_y, int feature_count, string info_format ) : string
WMSのGetFeatureInfo URLを返します。(WMSレイヤでのみ機能します) clickX、clickYは照会する位置を、イメージの左上が (0,0) となるピクセル座標で指定します。
featureCountは返ってくる結果の数です。
infoFormatには、結果をどのような形式で要求するかを指定します。リモートサーバの能力に依存します。MapServer WMSサーバは”MIME”のみサポートします。(まもなく”GML.1”をサポートする予定です)
レイヤがWMSレイヤでない場合、または照会できない場合、”” が返り、ワーニングが出ます。
insertClass( classObj class [, int index=-1 ] ) : int
引数indexは指定された位置にClassのコピーを追加します。indexのディフォルト値は-1、配列の最後になります。
追加されたClassの実際のインデックスを返します。
isVisible( ) : int
レイヤのstatus, minscale及びmaxscaleによって、現在レイヤ表示/非表示のステータスを返します。MS_TRUE or MS_FALSE。
moveClassDown( int class ) : int
クラスindexで指定したクラスの、レイヤ配列内での順番を繰り下げます。 MS_SUCCESSまたはMS_FAILUREが返ります。
moveClassUp( int class ) : int
クラスindexで指定したクラスの、レイヤ配列内での順番を繰り上げます。 MS_SUCCESSまたはMS_FAILUREが返ります。
nextShape( ) : shapeObj
msWhichShapes関数を呼び出した後、実際の地物を取得します。
MS_SUCCESSまたはMS_FAILUREが返ります。
例:mapObj map = new mapObj("d:/msapps/gmap-ms40/htdocs/gmap75.map");
layerObj layer = map.getLayerByName('road');
int status = layer.open();
status = layer.whichShapes(map.extent);
shapeObj shape;
while ((shape = layer.nextShape()) != null)
{
…
}
layer.close();
open() : void
getShape() を使うためにレイヤを開きます。
queryByAttributes( mapObj map, string qitem, string qstring, int mode ) : int
レイヤを現在の地図範囲と交差する形状によって照会します。qitemは照会対象の項目(属性)で、qstringは一致する式です。
照会は、TEMPLATEに値が入っているクラス、または、所属するレイヤのTEMPLATEに値が入っているクラスに属するすべての形状に対して実行されます。
この関数では、レイヤのFILETER/FILTERITEMが無視されることに注意してください。
modeは欲しい結果数によって、MS_SIGLEまたはMS_MULTIPLEを指定します。形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。(何も見つからない場合のエラーメッセージは、PHPのエラー制御演算子’@’を使うと抑制できます)
queryByFeatures( mapObj map, int slayer ) : int
他のレイヤからの、先の結果セットに基づいて照会を実行します。結果セットは現時点ではポリゴンレイヤにもとづいていなければなりません。
形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。
queryByIndex( mapObj map, int shapeindex, int tileindex [, int bAddToQuery=MS_FALSE ]) : int
レイヤのResultCache内に検索します。戻り値はMS_SUCCESS or MS_FAILURE。
queryByPoint( mapObj map, pointObj point, int mode, float buffer ) : int
レイヤを地理座標(すなわち、ピクセルではありません)で指定されたポイントで照会します。
照会は、TEMPLATEに値が入っているクラス、または、所属するレイヤのTEMPLATEに値が入っているクラスに属するすべての形状に対して実行されます。 modeは欲しい結果数によって、MS_SIGLEまたはMS_MULTIPLEを指定します。 bufferを<=0としてマップファイルで設定したデフォルトのtolerance(ピクセル単位で指定)を使うか、一定の大きさのbuffer (地上の距離単位で指定)を使用できます。
形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。
queryByRect( mapObj map, rectObj rect ) : int
レイヤを地理座標(すなわち、ピクセルではありません)で指定された矩形を使って照会します。
照会は、TEMPLATEに値が入っているクラス、または、所属するレイヤのTEMPLATEに値が入っているクラスに属するすべての形状に対して実行されます。形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。
queryByShape( mapObj map, shapeObj shape ) : int
レイヤを単一の形状に基づいて照会します。形状は現時点ではポリゴンでなければなりません。
形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。
removeClass( int index ) : classObj
クラスindexで指定したクラスを削除して、クラスのコピーを戻ります。エラーの場合はNULLを戻ります。
removeMetaData( string key ) : int
レイヤのmetadataエントリーを削除します。MS_SUCCESSまたはMS_FAILUREが返ります。
setExtent( float minx, float miny, float maxx, float maxy ) : int
レイヤの範囲を設定します。MS_SUCCESSまたはMS_FAILUREが返ります。
setFilter( string filter ) : int
レイヤのFILETR式を設定します。MS_SUCCESSまたはMS_FAILUREが返ります。
setMetaData( string key, string value ) : int
レイヤのmetadataエントリーを設定します。MS_SUCCESSまたはMS_FAILUREが返ります。
setProcessingKey( string key, string value ) : void
レイヤのprocessingリストに文字列を設定します。addProcessing()と違い、このメソッドはすでに存在のものを上書きます。
setProjection( string proj4 ) : int
レイヤの投影と座標系を設定します。引数は、PROJ.4パラメータをカンマ区切りでつなげた単一文字列で与えます。
例: "+proj=utm +zone=11 +datum=WGS84" or "init=EPSG:26911"
setWKTProjection( string wkt ) : int
setProjection() と同様ですが、入力がOGC WKTの投影定義文字列となります。
int whichShapes( rectObj rect ) : int
空間と任意属性ベースの検索を行います。
この関数は候補地物を検索あるいは描画できるように用意しています。(例えばnextshapeを利用)
戻り値はMS_SUCCESSあるいはMS_FAILUREです。














