| SPATIALQUERY | サンプル |
| <SPATIALQUERY |
属性の概要
|
|
ArcMapサーバの場合: featurelimit ="整数" [全て] searchorder ="optimize | spatialfirst | attributefirst" [optimize] subfields ="#ALL# | #ID# | #SHAPE# | データベースの他のフィールド名" [#ALL#] where ="文字列" Image、Extract、Query、Featureサーバの場合: accuracy ="座標点の間隔" [0] featurelimit ="整数" [全て] joinexpression ="文字列" jointables ="文字列" searchorder ="optimize | spatialfirst | attributefirst" [optimize] subfields ="#ALL# | #ID# | #SHAPE# | データベースの他のフィールド名" [#ALL#] where ="文字列" > 親要素:BUFFER < FEATURECOORDSYS ... /> < FILTERCOORDSYS ... /> < SPATIALFILTER ... /> 親要素:GET_FEATURES < BUFFER ... /> < FEATURECOORDSYS ... /> < FILTERCOORDSYS ... /> < SPATIALFILTER ... /> 親要素:GET_IMAGEのLAYERとLAYERDEF < BUFFER ... /> < SPATIALFILTER ... /> 親要素:CONFIGのLAYER < FILTERCOORDSYS ... /> < SPATIALFILTER ... /> </SPATIALQUERY > |
|
| <SPATIALQUERY where="myfield = '"myvalue"'" /> |
| <SPATIALQUERY featurelimit="100" /> |
|
<GET_FEATURES
outputmode="XML"
geometry="true"
> <LAYER id="4" /> <SPATIALQUERY subfields="#ALL#" where="NAME='Los Angeles'" /> </GET_FEATURES> |
| <SPATIALQUERY subfields="#ALL#" where="UPPER(NAME)="TORONTO" > |
| <SPATIALQUERY subfields="#ALL#" where="UPPER(MYSDE.US_STATES.STATE_NAME)="FLORIDA" > |
| <SPATIALQUERY where="COUNTRY.STATE.FEMALES > COUNTRY.STATE.MALES" /> |
| <SPATIALQUERY subfields="#ALL#" where="UPPER(NAME) = 'CANADA'"> |
| <SPATIALQUERY where= "DB.CITY.CITY_FIPS = DB.SCHOOLS.CITY_FIPS and DB.SCHOOLS.SCHOOL_ID = DB.SCHOOL_STATS.SCHOOL_ID and DB.CITY.CNTY_FIPS='013'" jointables="DB.SCHOOLS DB.SCHOOL_STATS" /> |
| To |
マスターDBFテーブルを参照して、結合のために使用されるフィールドを定義します。このテーブルを参照する場合、フィールド名の前にDBFテーブル名を付ける必要があります。定義式全体はカギ括弧で囲みます。 例:joinexpression="To=[mastertable.fieldname]" |
| From |
マスターDBFテーブルに結合されるDBFテーブルを参照して、結合のために使用されるフィールドを定義します。 例:joinexpression="From=[jointable.fieldname]" |
| Type=[exact] | マスターテーブルと結合テーブルの間で、単一のマッチングのみを許可する"exact matchリレーション"を定義します。"1対1"と"多対1"のリレーションが"exact matchリレーション"です。1対1のリレーションでは、マスターテーブルの1レコードのみが、結合テーブルの1レコードとマッチします。多対1のリレーションでは、マスターテーブルの複数レコードが、結合テーブルの1レコードとマッチします。結合テーブルの複数レコードがマスターテーブルの1レコードとマッチする場合、最初に結合したレコードのみが参照されます。 |
| Type=[scan] | "scanリレーション"では、マスターテーブルの1レコードに対して結合テーブルの複数レコードが対応する場合、マッチする各レコードについて結合レコードが生成されます。"1対多"と"多対多"のリレーションが"scanリレーション"です。1対多のリレーションでは、マスターテーブルの各レコードが、結合テーブルの複数レコードにマッチすることができます。多対多リレーションも1対多と同様ですが、マスターテーブルの複数レコードが結合テーブルの同一レコードにマッチできるところが異なります。 |
| joinexpression="To=[A.ID],From=[B.ID],Type=[scan];To=[B.NAME],From=[C.NAME], Type=[exact] " |
| <SPATIALQUERY joinexpression="To=[counties.CNTY_FIPS],From=[countyinfo.FIPS],Type=[scan]; To=[countyinfo.FIPS],From=[state_roads.FIPS],Type=[scan]" jointables="countyinfo state_roads" where="counties. NAME='Washoe'" /> |
| YYYY | 年 | 必須 | 年を4桁の数字で記述します。 |
| MM | 月 (01-12) | 必須 | 月を2桁の数字で記述します。3月は「03」となります。 |
| DD | 日 (01-31) | 必須 | 日を2桁の数字で記述します。4日は「04」となります。 |
| hh | 時 (00-23) | オプション | 24時間表記を用います。午前8時は「08」、午後8時は「20」となります。 |
| mi | 分 (00-59) | オプション | 分を2桁の数字で記述します。分を指定する場合は、時も必要となります。 |
| ss | 秒 (00-59) | オプション | 秒を2桁の数字で記述します。秒を指定する場合は、時と分も必要となります。 |
| <SPATIALQUERY where="MYDATE = {ts '2000-01-04 08:03:32'}" /> |
| <SPATIALQUERY where="ARCSDE.TABLE.MYDATE = {ts '2002-03-08 21:18:00'}" /> |
| <SPATIALQUERY where="DATE_ = date '2003-01-31' " > |
| <SPATIALQUERY where="[DATE_] = #2003-01-31# " > |
| 属性 | 使い方 | トップへ戻る |
|---|---|---|
| accuracy | GET_FEATURESリクエストでのみ使用します。ポイントは指定された距離と画像の解像度に基づいて、フィーチャの範囲内で導き出されます。単位はサービスと同じです。accuracyが0の場合にはフィーチャのポイントをすべて返却しますが、0より高い値の場合、フィーチャをもっと一般化した、ポイントの少ないフィーチャを返却します。accuracyにゼロでない値が与えられた場合、レイヤ内のフィーチャのジオメトリ レイアウトに依存して、ポリラインあるいはポリゴンがself-intersectingになる場合があることに注意して下さい。これが生じた場合、ジオメトリは無効でフィーチャは無視され、空間検索で結果は何も返却されません。accuracyはポイント レイヤに使用することはできず、ポリゴンとポリラインのレイヤにのみ有効です。任意のBUFFER演算中はaccuracy="0"の使用を推奨します。 | |
| featurelimit | 抽出するフィーチャの最大数を設定します。詳細については「注意」のセクションを参照して下さい。 | |
| joinexpression |
シェープファイルとDBFファイルのテーブル結合の条件式を設定します。ArcSDEでjointableが実行済みの場合は必要ありません。 この属性に設定する文字列は、次の書式に従う必要があります。 "To=[結合に使用するマスターテーブルのフィールド(カラム)], From=[結合されるテーブルのフィールド(カラム)], Type=[exactまたはscan]" |
|
| jointables | 結合するテーブルの名称を半角スペースで区切って列挙します。ArcSDEの場合、テーブル名はデータベース名を含む冗長なフォーマットで記述します(例:DATA.STATE)。シェープファイルの場合は、DBFのファイル名から拡張子を除いた単純な名称で記述します(例:STATES)。 | |
| searchorder | ArcSDEレイヤにのみ使用します。ArcSDEの検索において、属性検索と空間検索のどちらが先に処理されるかを決定します。"spatialfirst"は属性検索の前に空間検索を行ないます。"attributefirst"は属性検索を先に行ないます。"optimize"が指定された場合、ArcSDEが"spatialfirst"あるいは"attributefirst"のどちらにするかを判断します。 | |
| subfields |
検索や抽出に使用できるフィールド名をリストします。subfieldsのリストには複数のフィールドを含めることができます。フィールドは空白文字で区切られている必要があります。
subfields属性を使用しない場合、全てのフィールドが返却されます。subfields属性を使用した場合、リストされたフィールドのみが返却されます。FEATURESレスポンスでジオメトリ情報を返却する場合は、subfieldsに#SHAPE#あるいは#ALL#が含まれている必要があります。また、GET_FEATURESのgeometry属性に"true"を必ず設定します。 subfieldsのリストにはレイヤのテーブル、あるいは結合テーブルのフィールドを含めることができます。
|
|
| where | SQL文の'where'句の部分を定義します。ArcSDEテーブルについてjointables属性を設定する場合には必須となります。日付による検索については「注意」のセクションを参照して下さい。 | |
| サンプル 1: GEI_IMAGEリクエストで空間検索を設定する場合。このサンプルでは、DATASET要素のfromlayer属性が"Countries"であることに注意して下さい。LAYER要素のname属性ではなく、マップ設定ファイルのLAYER要素のid属性を参照します。 | トップに戻る |
|
<?xml version="1.0"
encoding="UTF-8"?> <ARCXML version="1.1"> <REQUEST> <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-180" miny="-90" maxx="180" maxy="90" /> <IMAGESIZE width="643" height="502" /> </PROPERTIES> <LAYER type="featureclass" name="select layer" visible="true" id="300"> <DATASET fromlayer="Countries" /> < SPATIALQUERY > <SPATIALFILTER relation="area_intersection"> <ENVELOPE maxy="30" maxx="30" miny="0" minx="0" /> </SPATIALFILTER> </ SPATIALQUERY > <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="255,255,255" filltype="cross" /> </SIMPLERENDERER> </LAYER> </GET_IMAGE> </REQUEST> </ARCXML> |
|
| サンプル 2: GET_FEATURESリクエストで空間検索を設定する場合 | トップに戻る |
|
<?xml version="1.0"
encoding="UTF-8"?> <ARCXML version="1.1"> <REQUEST> <GET_FEATURES outputmode="xml" geometry="false"> <LAYER id="Countries" /> < SPATIALQUERY > <SPATIALFILTER relation="area_intersection"> <POLYGON> <RING> <POINT x="-87.73640582356195" y="41.84726275" /> <POINT x="-87.73640582356195" y="41.884308250000004" /> <POINT x="-87.68764017643805" y="41.884308250000004" /> <POINT x="-87.68764017643805" y="41.84726275" /> <POINT x="-87.73640582356195" y="41.84726275" /> </RING> </POLYGON> </SPATIALFILTER> </ SPATIALQUERY > </GET_FEATURES> </REQUEST> </ARCXML> |
|
| サンプル 3: CONFIGでDBFファイルを結合する場合 | トップに戻る |
|
<?xml version="1.0"
encoding="UTF-8"?> <ARCXML version="1.1"> <CONFIG> <ENVIRONMENT> <LOCALE country="US" language="en" variant="" /> <UIFONT color="0,0,0" name="Arial" size="12" style="regular" /> <SCREEN dpi="96" /> </ENVIRONMENT> <MAP> <PROPERTIES> <ENVELOPE minx="-178.215027" miny="18.924782" maxx="-66.969849" maxy="71.406647" name="Initial_Extent" /> <MAPUNITS units="decimal_degrees" /> </PROPERTIES> <WORKSPACES> <SHAPEWORKSPACE name="shp_ws-0" directory="<path to USA ESRIDATA>" /> </WORKSPACES> <LAYER type="featureclass" name="counties" visible="true" id="0"> <DATASET name="COUNTIES" type="polygon" workspace="shp_ws-0" /> < SPATIALQUERY where="counties.STATE_NAME='Nevada'" jointables="countyinfo" joinexpression="To=[counties.FIPS],From=[countyinfo.FIPS],Type=[scan]" > <SPATIALFILTER relation="area_intersection"> <ENVELOPE minx="-126" miny="31" maxx="-108" maxy="46" /> </SPATIALFILTER> </ SPATIALQUERY > <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL fillcolor="27,127,27" filltype="solid" /> </SIMPLERENDERER> </LAYER> </MAP> </CONFIG> </ARCXML> |
|
| サンプル 4: CONFIGでArcSDEテーブルを結合する場合 | トップに戻る |
|
<?xml version="1.0"
encoding="UTF-8"?> <ARCXML version="1.1"> <CONFIG> <ENVIRONMENT> <LOCALE country="US" language="en" variant="" /> <UIFONT color="0,0,0" name="Arial" size="12" style="regular" /> <SCREEN dpi="96" /> </ENVIRONMENT> <MAP> <PROPERTIES> <ENVELOPE minx="-175.2" miny="-90.0" maxx="179.2" maxy="83.6" name="Initial_Extent" /> <MAPUNITS units="decimal_degrees" /> </PROPERTIES> <WORKSPACES> <SDEWORKSPACE name="sde_ws-4" server="sierra" instance="esri_sde" database="" user="world_data" encrypted="true" password="LXEMUR" /> </WORKSPACES> <LAYER type="featureclass" name="WORLD.CITY" visible="true" id="0"> <DATASET name="WORLD.CITY" type="point" workspace="sde_ws-4" /> < SPATIALQUERY where="WORLD.CITY.FIPS_CNTRY = WORLD.COUNTRYP.FIPS_CNTRY and WORLD.COUNTRYP.FIPS_CNTRY='CA' " jointables="WORLD.COUNTRYP" > <SPATIALFILTER relation="area_intersection"> <ENVELOPE maxy="30" maxx="30" miny="0" minx="0" /> </SPATIALFILTER> </ SPATIALQUERY > <SIMPLERENDERER> <SIMPLEMARKERSYMBOL color="27,227,27" width="8" /> </SIMPLERENDERER> </LAYER> </MAP> </CONFIG> </ARCXML> |
|
| サンプル 5: CONFIGで属性検索と空間フィルタの両方を使用する場合 | トップに戻る |
|
<?xml version="1.0"
encoding="UTF-8"?> <ARCXML version="1.1"> <CONFIG> <ENVIRONMENT> <LOCALE country="US" language="en" variant="" /> <UIFONT color="0,0,0" name="Arial" size="12" style="regular" /> <SCREEN dpi="96" /> </ENVIRONMENT> <MAP dynamic="true"> <PROPERTIES> <ENVELOPE minx="-180" miny="-90" maxx="180" maxy="90" name="Initial_Extent" /> <MAPUNITS units="decimal_degrees" /> </PROPERTIES> <WORKSPACES> <SHAPEWORKSPACE name="shp_ws-0" directory="<path to WORLD ESRIDATA>"/> </WORKSPACES> <LAYER type="featureclass" name="CITIES" visible="true" id="2"> <DATASET name="CITIES" type="point" workspace="shp_ws-0" /> < SPATIALQUERY where="POPULATION > 2000000"> <SPATIALFILTER relation="area_intersection"> <ENVELOPE maxy="30" maxx="30" miny="0" minx="0" /> </SPATIALFILTER> </ SPATIALQUERY > <SIMPLERENDERER> <SIMPLEMARKERSYMBOL type="square" width="5" /> </SIMPLERENDERER> </LAYER> </MAP> </CONFIG> </ARCXML> |
|
| サンプル 6: GET_FEATURESリクエストで日付検索を行なう場合 | トップに戻る |
|
<?xml version="1.0"
encoding="UTF-8" ?> <ARCXML version="1.1"> <REQUEST> <GET_FEATURES featurelimit="25" beginrecord="0" outputmode="xml" geometry="false" envelope="true" compact="true"> <LAYER id="0" /> < SPATIALQUERY subfields="#ALL#" where="MYDATE = {ts '2000-01-07'}" /> </GET_FEATURES> </REQUEST> </ARCXML> |
|