PHP/MapScript LayerObjクラス

コンストラクタ:

LayerオブジェクトはMapObjクラスから取得するか、次のように作成できます:

layerObj ms_newLayerObj(MapObj map, layerObj layer)

2番目の引数(オプション)を指定すると、新しく作成されるレイヤは既存のレイヤをもとに作成されます。レイヤの引数が与えられると、このレイヤの全メンバが新しく作成されるレイヤにコピーされます。

メンバ:

int    numclasses  (read-only)
int    index       (read-only)
int    status      (MS_ON, MS_OFF, MS_DEFAULT or MS_DELETE)
int    debug
string classitem
string name
string group
string data
int    type
int    dump
double tolerance
int    toleranceunits
int    sizeunits   
double symbolscale
double minscale
double maxscale
double labelminscale
double labelmaxscale
int    maxfeatures
colorObj    offsite
int    annotate
int    transform
int    labelcache
int    postlabelcache
string labelitem
string labelsizeitem
string labelangleitem
string tileitem
string tileindex
string header
string footer
string connection
int    connectiontype
string filteritem
string template
int    transparency   
string styleitem
gridObj grid //グリッドとして定義されたレイヤでのみ有効(MS_GRATICULE)
int num_processing
string requires
string labelrequires

メソッド:

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint set(string property_name, new_value)

オブジェクトのプロパティをnew_valueに設定します。エラーの場合 -1が返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint draw(imageObj image)

単一レイヤを描画します。指定した場合、ラベルをキャッシュに入れます。
エラーの場合 -1が返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint drawQuery(imageObj image)

単一レイヤの照会結果地図を描画します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookclassObj getClass(int classIndex)

indexを与えてレイヤからclassObjを返します。(0=最初のクラス)

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint queryByPoint(pointObj point, int mode, double buffer)

レイヤを地理座標(すなわち、ピクセルではありません)で指定されたポイントで照会します。
照会は、TEMPLATEに値が入っているクラス、または、所属するレイヤのTEMPLATEに値が入っているクラスに属するすべての形状に対して実行されます。 modeは欲しい結果数によって、MS_SIGLEまたはMS_MULTIPLEを指定します。 bufferを<=0としてマップファイルで設定したデフォルトのtolerance(ピクセル単位で指定)を使うか、一定の大きさのbuffer(地上の距離単位で指定)を使用できます。
形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。(何も見つからない場合のエラーメッセージは、PHPのエラー制御演算子’@’を使うと抑制できます)

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint queryByRect(rectObj rect)

レイヤを地理座標(すなわち、ピクセルではありません)で指定された矩形を使って照会します。
照会は、TEMPLATEに値が入っているクラス、または、所属するレイヤのTEMPLATEに値が入っているクラスに属するすべての形状に対して実行されます。 形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。(何も見つからない場合のエラーメッセージは、PHPのエラー制御演算子’@’を使うと抑制できます)

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint queryByShape(shapeObj shape)

レイヤを単一の形状に基づいて照会します。形状は現時点ではポリゴンでなければなりません。
形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。(何も見つからない場合のエラーメッセージは、PHPのエラー制御演算子’@’を使うと抑制できます)

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint queryByFeatures(int slayer)

他のレイヤからの、先の結果セットに基づいて照会を実行します。結果セットは現時点ではポリゴンレイヤにもとづいていなければなりません。
形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。(何も見つからない場合のエラーメッセージは、PHPのエラー制御演算子’@’を使うと抑制できます)

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint queryByAttributes(string qitem, string qstring, int mode)

レイヤを現在の地図範囲と交差する形状によって照会します。qitemは照会対象の項目(属性)で、qstringは一致する式です。
照会は、TEMPLATEに値が入っているクラス、または、所属するレイヤのTEMPLATEに値が入っているクラスに属するすべての形状に対して実行されます。
この関数では、レイヤのFILETER/FILTERITEMが無視されることに注意してください。
modeは欲しい結果数によって、MS_SIGLEまたはMS_MULTIPLEを指定します。 形状が見つかった場合、MS_SUCCESSが返ります。何も見つからないか、何らかのエラーが発生した場合、MS_FAILUREが返ります。(何も見つからない場合のエラーメッセージは、PHPのエラー制御演算子’@’を使うと抑制できます)

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint setFilter(string expression)

レイヤのFILETR式を設定します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookstring getFilter()

レイヤのFILETR式を取得します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookstring getProjection()

投影の文字列表現を返します。投影が何も設定されていない場合、MS_FALSEが返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint setProjection(string proj_params)

レイヤの投影と座標系を設定します。引数は、PROJ.4パラメータをカンマ区切りでつなげた単一文字列で与えます。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint setWKTProjection(string proj_params)

setProjection() と同様ですが、入力がOGC WKTの投影定義文字列となります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint getNumResults()

このレイヤの最後の照会結果数を返します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookresultCacheMemberObj getResult(int index)

レイヤオブジェクトからindexによってresultCacheMemberObjを返します。indexは0からnumresults-1の範囲です。
妥当なオフジェクト、またはindexが不正な場合FALSE(0) が返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint open()

getShape() を使うためにレイヤを開きます。
MS_SUCCESSまたはMS_FAILUREが返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint whichshapes(rectobj)

空間と任意属性ベースの検索を行います。
この関数は候補地物を検索あるいは描画できるように用意しています。(例えばnextshapeを利用)
戻り値はMS_SUCCESSあるいはMS_FAILUREです。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookshpeobj nextShape()

msWhichShapes関数を呼び出した後、実際の地物を取得します。
MS_SUCCESSまたはMS_FAILUREが返ります。
例:

$map = ms_newmapobj("d:/msapps/gmap-ms40/htdocs/gmap75.map");
$layer = $map->getLayerByName('road');
$status = $layer->open();
$status = $layer->whichShapes($map->extent);
while ($shape = $layer->nextShape())
{
echo $shape->index ."<br>\n";
}
$layer->close();

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookvoid close()

open() で開いたレイヤを閉じます。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookshapeObj getFeature(int tileindex, int shapeindex)

レイヤからインデックスによってshapeObjを取得します。
tileindexはタイル・シェープファイルに対してのみ使用します。(tileindexは例えばgetResult() から返されるresultCacheMemberObjから取得します)
タイル・シェープファイル以外のデータに対しては、単にtileindex = -1を渡します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookshapeObj getShape(int tileindex, int shapeindex)

v5.0より非推奨となりました、変わりにgetFeature()を利用ください。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookrectObj getExtent()

レイヤの範囲を取得します。
レイヤのEXTENTプロパティを設定された場合は、その値を戻ります。設定されない場合は、レイヤをopens/closesして、範囲を取得します。
この処理については、shapefilesの場合はすぐに取得できますが、その他のファイルフォーマットあるいはデータソースの場合は、コスト高い処理になる可能性があります。
この関数は二つインスタンス以上同時実行しても安全です。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint addFeature(shapeObj shape)

レイヤに新しいフィーチャを追加します。エラーの場合 -1が返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint getMetaData(string name)

レイヤのmetadataエントリーをnameによってフェッチします。nameと一致するエントリーがない場合 ”” が返ります。検索時の大文字小文字は区別されます。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint setMetaData(string name, string value)

レイヤのmetadataエントリーを設定します。MS_SUCCESSまたはMS_FAILUREが返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint removeMetaData(string name)

レイヤのmetadataエントリーを削除します。MS_SUCCESSまたはMS_FAILUREが返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookstring getWMSFeatureInfoURL(int clickX, int clickY, int featureCount, string infoFormat)

WMSのGetFeatureInfo URLを返します。(WMSレイヤでのみ機能します) clickX、clickYは照会する位置を、イメージの左上が (0,0) となるピクセル座標で指定します。
featureCountは返ってくる結果の数です。
infoFormatには、結果をどのような形式で要求するかを指定します。リモートサーバの能力に依存します。MapServer WMSサーバは”MIME”のみサポートします。(まもなく”GML.1”をサポートする予定です)
レイヤがWMSレイヤでない場合、または照会できない場合、”” が返り、ワーニングが出ます。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookString getItems()

項目リストを返します。まずopen() を呼ぶ必要があります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookboolean setProcessing(string)

レイヤのprocessingリストに文字列を追加します。
layer->num_processingは1増えます。
例:$oLayer->setprocessing("SCALE_1=AUTO");
$oLayer->setprocessing("SCALE_2=AUTO");

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookString getProcessing()

processing文字列を含む配列を返します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookboolean clearProcessing()

processing文字列をすべてクリアします。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookstring executeWFSGetfeature()

WMSレイヤでGetFeature要求を実行し、作成された一時GMLファイル名を返します。エラーの場合、空文字列が返ります。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint applySLD(string sldxml, string namedlayer)

レイヤオブジェクトにSLDドキュメントを適用します。
sldドキュメントとレイヤとのマッチングにはレイヤのnameが使われます。 namedlayer引数を渡した場合(オプション)、これと一致するsldのNamedLayerが、このレイヤのスタイルとして使われます。
SLDサポートに関する詳細は他のドキュメントを参照してください。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint applySLDURL(string sldurl, string namedlayer)

レイヤオブジェクトにURLで参照されるSLDドキュメントを適用します。
sldドキュメントとレイヤとのマッチングにはレイヤのnameが使われます。 namedlayer引数を渡した場合(オプション)、これと一致するsldのNamedLayerが、このレイヤのスタイルとして使われます。
SLDサポートに関する詳細は他のドキュメントを参照してください。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookstring generateSLD()

レイヤで見つかったすべてのクラスをもとにSLD XML文字列を返します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint moveclassup(int index)

クラスindexで指定したクラスの、レイヤ配列内での順番を繰り上げます。 MS_SUCCESSまたはMS_FAILUREが返ります。
例:layer->moveclassup(1) は、クラス1を0番目に繰り上げ、0番目のクラスを1番目に移動します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookint moveclassdown(int index)

クラスindexで指定したクラスの、レイヤ配列内での順番を繰り下げます。 MS_SUCCESSまたはMS_FAILUREが返ります。
例:layer->moveclassdown(0) は、クラス0を1番目に繰り下げ、1番目のクラスを0番目に移動します。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookclassObj removeClass(int index)

クラスindexで指定したクラスを削除して、クラスのコピーを戻ります。エラーの場合はNULLを戻ります。
注:この操作で、クラスのIndexは再構成になります。 numclassesプロパティで、既存クラスの数を取得できます。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookboolean isVisible()

現時点レイヤ表示されているかどうか判断します。戻り値はMS_TRUE/MS_FALSEです。

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License