Hadoop APIを使用した空間索引のレコードの空間的フィルタ処理

get

/spatialviewer/api/v1/hadoop/filter

Hadoop APIを使用したレコードの空間的フィルタ処理サービス・レスポンスをMap APIのデータ・ソースとして使用し、マップ上に結果を表示できます。例:

// リモートの地理空間コンテンツをフェッチする場合のデフォルトhttpメソッド
OM.gv.setHttpMethod("GET");

tweetsLayer = new OM.layer.VectorLayer("Result",
{
def:{
type:OM.layer.VectorLayer.TYPE_DATAPACK,
url:'http://localhost:8045/spatialviewer/api/v1/hadoop/filter?indexName=TweetsJune&queryWindow={"type":"Polygon","coordinates":[[-106, 25, -106, 30, -104, 30, -104, 25, -106, 25]]}&heatMapResult=false&spatialOperation=None',
jsonp: true},
boundingTheme: true});

リクエスト

問合せパラメータ
  • trueの場合、この操作は非同期で実行されます。
    デフォルト値: false
  • 分類するHDFS内のファイルのパス。useIndexがfalseの場合は、このパラメータを指定します。
    例: /user/oracle/spatialviewer/tweetsJune.json
  • spatialOperationがWithinDistanceの場合、距離が必要です。投影されたデータの場合、距離の単位は投影の単位と同じです。測地データの場合、距離はメートル単位です。
    例: 1000
  • falseの場合、非同期の場合、レスポンスにはHDFS内の結果の場所が含まれ、実際の結果は含まれません。
    デフォルト値: true
  • ヒート・マップを結果として取得する場合はtrue。falseの場合、データの実際の形状が返されます。デフォルトでFalseです。
    デフォルト値: false
  • 索引の名前。useIndexがtrueの場合は、このパラメータを指定します。
    例: TweetsJune
  • 入力形式クラス。useIndexがfalseの場合に設定可能なオプションのパラメータ。入力形式クラスが指定されていない場合は、SparkContextのtextFileが使用されます。
    例: oracle.spatial.hadoop.vector.geojson.mapred.GeoJsonInputFormat
  • カスタムRecordInfoProviderまたはInputFormatのようなユーザー定義クラスを持つJAR名。InputFormatクラスまたはRecordInfoProviderクラスがAPI、またはHadoop APIクラスにない場合、ユーザー定義クラスのJARが提供されます。このjarを使用するには、/opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/libディレクトリに追加し、サーバーを再起動する必要があります。オプションのパラメータ。
    例: myjar.jar
  • ヒート・マップ・グリッドの列数。デフォルトは600です。
  • ヒート・マップ・グリッドの行数。デフォルトは600です。
  • ジョブの出力パス。asynchronousがtrueの場合は、このパラメータを指定します。
    例: /user/oracle/spatialviewer/FilterResult
  • GeoJSON形式のqueryWindow。
    問合せウィンドウは、矩形ツールなどのMap APIツールバーの標準ツールを使用して作成できます。
    var queryWindow = toolbar.getBuiltInTool(OM.control.ToolBar.BUILTIN_RECTANGLE).getGeometry().transform(8307).toString();

    Example: {"type":"Polygon","coordinates":[[-106, 25, -106, 30, -104, 30, -104, 25, -106, 25]]}
  • 空間情報を提供するクラス。useIndexがfalseの場合は、このパラメータを指定します。
    例: oracle.spatial.hadoop.vector.geojson.GeoJsonRecordInfoProvider
  • レコードを空間的にフィルタ処理する空間操作。指定できる値は、None、AnyInteract、IsInside、WithinDistanceおよびContainsです。デフォルト値はAnyInteractです。
    例: AnyInteract
  • ジオメトリのSRID。useIndexがfalseの場合は、このパラメータを指定します。
    例: 8307
  • 空間操作を実行するときに使用される許容差を表すdouble値。useIndexがfalseの場合は、このパラメータを指定します。
    例: 0.05
  • 索引が入力として使用される場合はtrue、それ以外の場合はfalse
    デフォルト値: true
先頭に戻る

レスポンス

サポートされるメディア・タイプ

200レスポンス

要求が成功しました
本文()
ルート・スキーマ: RecordsInfo
型: object
ソースの表示
ネストされたスキーマ: features
型: array
ソースの表示
ネストされたスキーマ: Feature
型: object
ソースの表示
ネストされたスキーマ: Geometry
型: object
ソースの表示
ネストされたスキーマ: coordinates
型: array
ソースの表示
例:
[
    -73.86659,
    50.41706
]
ネストされたスキーマ: properties
型: object
フィルタ処理されたレコードの追加フィールド(2.8.2.1「空間の索引付けクラスの構造」を参照)。たとえば、followers_count、friends_count、locationおよびuser_idという名前の追加フィールドを含めることができます
ソースの表示

202レスポンス

非同期リクエストを受け入れました
本文()
ルート・スキーマ: AsyncHadoopFilterJobResponse
型: object
ソースの表示
先頭に戻る

次の例では、cURLを使用してRESTリソースに対するGETリクエストを発行することによって、Hadoop索引を使用してフィルタ処理する方法を示しています。

curl -v -X GET "http://localhost:8045/spatialviewer/api/v1/hadoop/filter?fullResult=true&queryWindow=\{\"type\":\"Polygon\",\"coordinates\":\[\[-106,25,-106,30,-104,30,-104,25,-106,25\]\]\}&useIndex=true&indexName=tweetsJanuary" -H  "accept: application/json" 

レスポンス・ヘッダーの例

次に、レスポンス・ヘッダーの例を示します。

HTTP/1.1 200 OK Date: Wed, 15 Nov 2017 17:50:38 GMT Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, DELETE, PUT Access-Control-Allow-Headers: Content-Type, Accept Transfer-Encoding: chunked  Content-Type: application/json

レスポンス本文の例

次の例は、レスポンス本文の内容をJSON形式で示したものです(1つのレコードを含みます)。

{"type":"FeatureCollection", "copyright":"Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.", "srs":8307, "geodetic":true,"features":[{"type":"Feature","_id":"4789","geometry":{"type":"Point","coordinates":[-105.49998,28.19997]},"properties":{"friends_count":"199","location":"Chihuahua","user_id":"4092140","followers_count":"13"}}]} 
先頭に戻る