SQL クエリを使用したフィーチャの検索
説明
この操作は、Mapping Service におけるマップのレンダリングや凡例のレンダリングのリクエストに引き渡すことのできる、フィーチャ コレクション JSON を返します。
ACL 認証フロー
MapInfo SQL クエリに基づいてリポジトリ内の名前付きテーブルにあるフィーチャを返すには、ユーザ (またはユーザが属する役割) が名前付きテーブルに対する以下の実行権限を持っている必要があります。
- エンティティ タイプ "Location Intelligence.Named Resources" に対する "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’ のみが使用されます。
戻り値
リポジトリ内の名前付きテーブルの指定されたフィーチャを返します。
例
バウンド パラメータとクエリ パラメータを使用して、フィーチャを検索します。
{
"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"
}
}
}
}
]
}