SPATIALQUERY  サンプル

適用:  CONFIG    REQUEST   
サーバ:  Image   Query   Feature   Extract   ArcMap  
親要素:  BUFFER    GET_FEATURES    LAYER    LAYERDEF   

<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 >


概要


制限


注意


属性の概要

属性 使い方 トップへ戻る
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_FEATURESgeometry属性に"true"を必ず設定します。

subfieldsのリストにはレイヤのテーブル、あるいは結合テーブルのフィールドを含めることができます。
  • 結合テーブルを持たないシェープファイルでは、フィールドは短い形式を使用して参照できます。
    例:field="AREA"
  • 結合テーブルを持つシェープファイルでは、結合テーブル名がフィールド名の前に含まれている必要があります。
    例:field="JOINEDTABLE.AREA"
  • 結合テーブルを持たないArcSDEレイヤでは、フィールドは短い形式を使用して参照できます。
    例:field="ARCSDENAME.TABLE.AREA"
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=&apos;Nevada&apos;" 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=&apos;CA&apos; " 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 &gt; 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>