SQL クエリを使用したフィーチャの検索

説明

MapInfo SQL クエリに基づいて、リポジトリ内の名前付きテーブルのフィーチャを返します。MI SQL 関数の詳細については、『MapInfo SQL 言語リファレンス』を参照してください。
注: MI_GridMinValue および MI_GridMaxValue グリッド関数を除くすべての Mapinfo SQL 関数がサポートされています。

この操作は、Mapping Service におけるマップのレンダリングや凡例のレンダリングのリクエストに引き渡すことのできる、フィーチャ コレクション JSON を返します。

ACL 認証フロー

MapInfo SQL クエリに基づいてリポジトリ内の名前付きテーブルにあるフィーチャを返すには、ユーザ (またはユーザが属する役割) が名前付きテーブルに対する以下の実行権限を持っている必要があります。

  • エンティティ タイプ "Location Intelligence.Named Resources" に対する "EXECUTE" 権限
注: SQL クエリで複数のテーブルを参照する場合は、クエリに含まれるすべてのテーブルに対する EXECUTE 権限が必要です。(チームに相談してください)

パラメータ

以下のパラメータのタイプについては、リクエスト URL のデータ タイプを参照してください。

パラメータタイプ必須説明
rep文字列はい戻り値の表現。サポートされている表現は json です。
q=MI SQL query 文字列 はい

実行するクエリ (MI SQL 形式)。このクエリ文は、この場所ではなく POST 本体でも指定できます。詳細については、HTTP POST URL 形式を参照してください。

page=pagenumber文字列いいえ返されるページ番号。
pageLength=pagelength文字列いいえ各ページに返されるフィーチャの数。page パラメータがリクエストに指定されている場合は、pageLength を定義する必要があります。

HTTP GET URL 形式

HTTP GET リクエストには次の形式を使用します。


HTTP GET /tables/features.rep;[q=SQL query]
&[page=pagenumber]&[pageLength=pagelength]
			

戻り値

リポジトリ内の名前付きテーブルの指定されたフィーチャを返します。


{
"type":"FeatureCollection","Metadata":[{"type":"Geometry","name":"Obj",​
"style":{},"styleColumn":"MI_Style"},{"type":"String","name":"Country"},​
{"type":"String","name":"Capital"},{"type":"String","name":"Continent"},​
{"type":"Integer","name":"Numeric_code"},{"type":"String","name":"FIPS"},​
{"type":"String","name":"ISO_2"},{"type":"String","name":"ISO_3"},​
{"type":"Integer","name":"Pop_1994"},{"type":"Decimal","name":"Pop_Grw_Rt",​
"fractionalDigits":1,"totalDigits":6},{"type":"Integer","name":"Pop_Male"},​
{"type":"Integer","name":"Pop_Fem"},{"type":"Integer","name":"Pop_0_14"},​
{"type":"Integer","name":"Pop_15_64"},{"type":"Integer","name":"Pop_65Plus"},​
{"type":"Integer","name":"Male_0_14"},{"type":"Integer","name":"Male_15_64"},​
{"type":"Integer","name":"Male_65Plus"},{"type":"Integer","name":"Fem_0_14"},​
{"type":"Integer","name":"Fem_15_64"},{"type":"Integer","name":"Fem_65Plus"},​
{"type":"Integer","name":"Pop_Urban"},{"type":"Integer","name":"Pop_Rural"},​
{"type":"Integer","name":"Pop_Urb_Male"},{"type":"Integer","name":"Pop_Urb_Fem"},​
{"type":"Integer","name":"Pop_Rur_Male"},{"type":"Integer","name":"Pop_Rur_Fem"},​
{"type":"Decimal","name":"Arable_Pct","fractionalDigits":1,"totalDigits":6},​
{"type":"Decimal","name":"Literacy","fractionalDigits":1,"totalDigits":4},​
{"type":"Decimal","name":"Inflat_Rate","fractionalDigits":1,"totalDigits":4},​
{"type":"Decimal","name":"Unempl_Rate","fractionalDigits":1,"totalDigits":4},​
{"type":"Decimal","name":"Indust_Growth","fractionalDigits":1,"totalDigits":4},​
{"type":"Integer","name":"ColorCode"},{"type":"Style","name":"MI_Style"}]
}
			

リポジトリ内の /Samples/NamedTables ディレクトリにあるテーブル WorldTable から、country が CANADA のレコードのフィーチャを返します。


http://www.<website>.com/rest/Spatial/FeatureService/tables/features.json?q=SELECT * FROM 
"/Samples/NamedTables/WorldTable" WHERE Country='CANADA'
			

HTTP POST URL 形式

クエリとバウンド パラメータを使った SQL による検索の HTTP POST リクエストには、次の形式を使用します。


HTTP POST:  /FeatureService/tables/features.rep?
POST Data: [q=MI SQL query]
POST BODY: Content-Type:application/json {query, bound parameters}
			

{bound parameters} は、含められる 1 つ以上のパラメータを含む MI SQL 検索クエリの POST json 本体 (Content-Type: application/json) です。Null 値がサポートされていますが、その場合もタイプは必須です。

query を使用すると、URL の ‘q’ パラメータ以外にも、POST 本体にクエリ文を指定できます。クエリ文が非常に長く、URL のサイズ制限を超える可能性がある場合に、この方法は便利です。‘q’ と ‘query’ を本体に同時に指定した場合は、 ‘q’ のみが使用されます。

注: POST では json はオプションです。SQL クエリでバウンド パラメータを使用する場合にのみ必要です。

戻り値

リポジトリ内の名前付きテーブルの指定されたフィーチャを返します。

バウンド パラメータとクエリ パラメータを使用して、フィーチャを検索します。


{
   "query":"SELECT WORLD.Capital, WORLD.Country FROM \"/Samples/NamedTables/WorldTable\" as WORLD WHERE MI_Contains(Obj, @geomParam)",
   "parameters":[
      {
         "name":"geomParam",
         "value":{
            "type":"Point",
            "coordinates":[
               -86,
               32
            ]
         },
         "crs":{
            "type":"name",
            "properties":{
               "name":"epsg:4326"
            }
         }
      }
   ]
}          

バウンド パラメータを使ってフィーチャを検索します。

SELECT WORLD.Capital FROM "/WORLD" as WORLD WHERE MI_CONTAINS(Obj,@geomParam)
{
   "parameters":[
      {
         "name":"geomParam",
         "value":{
            "type":"Point",
            "coordinates":[
               -72,
               42
            ],
            "crs":{
               "type":"name",
               "properties":{
                  "name":"epsg:4326"
               }
            }
         }
      }
   ]
}