rsql

構文

RSQL は RESTful API のクエリー言語です。 URI に適した構文を使用しており、安全でない文字はないため、 URL のエンコードは必要ありません。 一部の論理演算子および比較演算子をサポートしており、カスタム演算子で簡単に拡張できます。

RSQL の詳細については 、 https://github.com/jirutka/rsql-parserを参照してください。

使用可能な演算子

データ クライアント ライブラリでは、次のようなすべての標準 RSQL 演算子がサポートされています。

演算子 代替構文 意味
== 等しい tileId==91717
!= 等しくありません tileId!=91717
< =lt= より小さい limit<100 または limit=lt=100
<= =le= 以下 limit<=100 または limit=le=100
> =gt= より大きい演算子 limit>100 または limit=gt=100
>= =ge= 以上 limit>=100 または limit=ge=100
=in= =IN= インチ tileId=in=(91717,91718)
=out= にありません tileId=out=(91717,91718)

データ クライアント ライブラリでは、レイヤータイプに応じて標準orおよびand RSQL 演算子がサポートされます ( 以下を参照 ) 。

演算子 意味
or 論理和 tileId==91717 or limit<100
and 論理積 tileId!=91717 and limit<100

さらに、データ クライアント ライブラリでは次の カスタム 演算子がサポートされています。

注 : 大文字 のカスタム 演算子を使用できますが、 RSQL ガイドでは小文字の演算子を推奨しています。

演算子 代替構文 意味
=inboundingbox= =INBOUNDINGBOX= バウンディング ボックスによって記述された領域 =inboundingbox=(northLatitude, southLatitude, eastLongitude, westLongitude)
たとえば、ミュンヘン =inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771)
の座標は小数度です
=incircle= =INCIRCLE= 円で記述された領域 =circle=(centerLatitude, centerLongitude, radiusInMeters)
たとえば、ミュンヘン空港 =circle=(48.3536621, 11.7750279, 5000)
の座標をカバーする円は、 10 進法の度数で表されます
=inpolygon= =INPOLYGON= 多角形で記述された領域 =inpolygon=(long1,lat1,long2,lat2,...)
座標は小数度で指定します
=changes= =CHANGES= バージョンの範囲は、最小バージョンから最大バージョンまでです =changes=(minVer,maxVer)
=changes=(100,200)
=contains= =CONTAINS= フィールドにストリングが含まれているかどうかを確認します =contains=(string)
=contains=(food)

レイヤータイプごとにサポートされている演算子

データ クライアント ライブラリでは、 RSQL を使用して特定のデータのクエリまたは選択を行います。 異なるレイヤータイプに保存されているデータの構造が異なるため、レイヤータイプごとに異なる演算子をサポートします。

次の章では、レイヤータイプごとに使用可能なすべての演算子と属性について説明します。 参照しやすいように、代替案はサポートされていますが、 HERE の一覧には表示されていません。

インデックス レイヤー

サポートされる演算子 :

  • すべての標準演算子
  • and AND or 演算子
  • =inboundingbox=
  • =incircle=
  • =inpolygon=

サポートされている属性 :

  • tileId
  • timestamp
  • timewindow

注 :

  • timeStamp 属性または timewindow タイプのフィールドを使用する場合、時間はエポック( 1970 年 1 月 1 日 00:00 UTC )以降の UTC ミリ秒数になります。 別のタイムゾーンでアプリケーションを実行する場合は、データのクエリまたはアップロードを行う前に、タイムスタンプが UTC に変換されていることを確認してください。 Java または Scala では、次の関数呼び出しを使用して変換を実行できます。 Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTimeInMillis()

制限事項 :

  • 空間クエリによって返されるタイルの最大数は 2000 を超えることはできません。
  • クエリのパフォーマンスを最適化 timewindow するには、インデックス属性を使用します。
  • timestamptimewindow インデックス付けの属性は、同じクエリでは使用できません。
    注 : timewindow 属性は名前と期間で構成 ingestionTime されているため、クエリーで直接使用することはできません。たとえば、名前と期間は 60 (分)などです。 この場合、クエリーではが使用 ingestionTimeされます。

例 :

  • tileId==91717
  • tileId=in=(91717,91718) ( これらの 2 つのパーティションを返します )
  • tileId=inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771) ( レイヤー設定で定義されているズーム レベルのミュンヘンのすべてのパーティションを返します )
  • tileId=in=(FOO,BAR) ( HERE タイリングスキーマは使用しないが、スキーマを汎用的にタイリングして FOO いるレイヤーから 2 つのパーティションを返します。パーティションの名前はおよび BARです)
  • timestamp==1552383031000 (エポックからのミリ秒数、 2019 年 3 月 12 日 09:30:31 GMT )
  • ingestionTime>1552382100000;ingestionTime<1552385700000 ( 2019 年 3 月 12 日 9 時 15 分、 2019 年 3 月 12 日 10 時 15 分未満)

インデックス レイヤーデータのクエリの詳細について は、「 Data API 開発者ガイド」の「インデックス レイヤーからデータを取得」セクションを参照してください。

バージョン付レイヤー

サポートされている属性 :

  • mt_partition
  • mt_version

属性ごとにサポートされている演算子 :

  • mt_partition
    • ==
    • =in=
    • =inboundingbox=
  • mt_version
    • ==
    • =changes=
  • and 演算子

制限事項 :

  • 属性 mt_partitionmt_version 条件は and 、演算子と組み合わせることができます。 OR 演算子を使用した結合はサポートされていません。
  • 最大値にすることができます 2 つの比較演算子。
  • =changes= 演算子はに mt_version のみ適用されます。
  • =changes= 演算子の場合、最小バージョンは最大バージョン以下である必要があります。 最小バージョンは排他的です。 指定したバージョンが削除された場合は、既存の最も古いバージョンが使用されます。 最大バージョンが含まれています。 最小バージョンよりも大きい値にする必要があります。
  • == を持つ演算子 mt_version は、 LATEST 明示的に定義せずに最新バージョンを照会する特殊なキーワードを使用できます。

例 :

  • mt_version==100
  • mt_version==LATEST
  • mt_version=changes=(100,200)
  • mt_partition==91717 ( 最新バージョンを暗黙的に使用 )
  • mt_partition==91717 and mt_version==100
  • mt_partition=in=(91717,91718) ( これら 2 つのパーティションの最新バージョンを返します )
  • mt_partition=inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771) ( ミュンヘンのすべてのパーティションの最新バージョンを返します )
  • mt_partition=in=(FOO,BAR) ( HERE タイリングスキーマは使用していませんが、スキーマを汎用的にタイリングしているレイヤーから、 FOO およびという名前のパーティションがあるこれら 2 つのパーティションの最新バージョンを返し BARます)

ボラタイル レイヤー

サポートされている属性 :

  • mt_partition
  • mt_timestamp

属性ごとにサポートされている演算子 :

  • mt_partition
    • ==
    • =in=
    • =inboundingbox=
  • mt_timestamp
    • =ge= ( since 揮発性パーティションのフィルタの属性に変換 )
  • and 演算子

制限事項 :

  • 属性 mt_partitionmt_timestamp 条件は and 、演算子と組み合わせることができます。 OR 演算子を使用した結合はサポートされていません。
  • 最大値にすることができます 2 つの比較演算子。
  • =ge= 演算子はに mt_timestamp のみ適用されます。

例 :

  • mt_partition==91717 (パーティションの期限が切れている場合、パーティションは暗黙的に無視されます
  • mt_partition==91717 and mt_timestamp=ge=1552383031000 (エポックからのミリ秒数、 2019 年 3 月 12 日 09:30:31 GMT )
  • mt_partition=in=(91717,91718) ( 有効期限が切れていない場合は、これらの 2 つのパーティションを戻し
  • mt_partition=inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771) ( 有効期限が切れていない場合は、ミュンヘンのすべてのパーティションを返します )
  • mt_timestamp=ge=1552383031000 (エポックからミリ秒後に更新されたすべてのパーティションを返します。 2019 年 3 月 12 日 09:30:31 GMT )

Interactive マップ レイヤー

サポートされている属性 :

  • mt_quadkeys
  • mt_geometry
  • mt_id
  • mt_property
  • mt_selection

属性ごとにサポートされている演算子 :

  • mt_quadkeys
    • ==
    • =in=
  • mt_id
    • ==
    • =in=
  • mt_geometry
    • =inboundingbox=
    • =inpolygon=
  • mt_selection この属性は、オブジェクト内のプロパティの投影法を作成します。たとえば、 mt_selection==pfoo は、プロパティ foo のみを返します
    • ==
    • =in=
  • f|p.* f. またはで始まる任意の属性 p.p. 機能のプロパティでフィールドを選択するためのもので f. 、機能のルートレベルでフィールドを選択するためのものです
    • ==
    • !=
    • >
    • >=
    • <
    • <=
    • =contains= この操作では、フィールドに文字列が含まれているかどうかが確認されます
  • and 演算子

制限事項 :

  • クエリは空であるか、または 1 つ以上のmt_quadkeymt_idmt_geometryクエリを含める必要 があります。
  • バウンディング ボックスまたはポリゴンは境界の内側にある必要があります。
    • 経度: [-180, 180]
    • 緯度: [-85.05112878, 85.05112878]
  • バウンディング ボックスの北緯度は南緯度よりも大きい値にする必要があります。
  • 削除クエリのみがサポート mt_idされています。 つまり、 ID によってのみオブジェクトを削除できます。
    注意 : の RSQL 削除 クエリによって、すべてが削除されます。

例 :

  • mt_quadkeys==012313
  • mt_quadkeys==012313 and f.timestamp>1552383031000 (タイムスタンプ 012313 のすべてのオブジェクトに、エポックからの経過時間がミリ秒の quadkey プロパティが設定されています。 2019 年 3 月 12 日 09:30:31 GMT )
  • mt_quadkeys=in=(012313,012312) ( これらの 2 つの四角形のキーを返します )
  • mt_geometry=inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771) ( ミュンヘンのすべてのオブジェクトを返します )
  • mt_geometry=inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771) and mt.selection==p.foo ( ミュンヘンのすべてのオブジェクトのプロパティ foo のみを返します )
  • mt_geometry=inboundingbox=(48.2292, 48.0417, 11.7490, 11.3771) and p.foo=contains=bar ( プロパティに foo というフィールドを持つミュンヘンのすべてのオブジェクトを返します。このフィールドには、 barbar 、 123bar 、 mybarfirst などの文字列が含まれています )

」に一致する結果は 件です

    」に一致する結果はありません