Spark APIを使用したレコードの空間的フィルタ処理
get
/spatialviewer/api/v1/spark/filter
入力が空間索引である場合は、イメージとして出力をレンダリングできます。サービス・レスポンスを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/spark/filter?indexPath=/user/oracle/spatialviewer/TweetsJune&queryWindow={"type":"Polygon","coordinates":[[-106, 25, -106, 30, -104, 30, -104, 25, -106, 25]]}',
jsonp: true},
boundingTheme: true});
// リモートの地理空間コンテンツをフェッチする場合のデフォルト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/spark/filter?indexPath=/user/oracle/spatialviewer/TweetsJune&queryWindow={"type":"Polygon","coordinates":[[-106, 25, -106, 30, -104, 30, -104, 25, -106, 25]]}',
jsonp: true},
boundingTheme: true});
リクエスト
問合せパラメータ
- asynchronous: boolean
trueの場合、この操作は非同期で実行されます。デフォルト値:
false
- attributeName: string
各レコードの色を値に応じてレンダリングする属性の名前。outputAsImageがtrueに設定されている場合、attributeNameは必須です。
- dataPath: string
分類するHDFS内のファイルのパス。useIndexがfalseの場合は、このパラメータを指定します。
例: /user/oracle/spatialviewer/tweetsJune.json - distance: number(double)
spatialOperationがWithinDistanceの場合、距離が必要です。投影されたデータの場合、距離の単位は投影の単位と同じです。測地データの場合、距離はメートル単位です。
例: 1000 - filterIndex: boolean
出力がイメージでない場合、このパラメータは無視されます。falseの場合、索引のすべてのレコードがレンダリングされます。デフォルト値:
true
- fullResult: boolean
falseの場合、非同期の場合、レスポンスにはHDFS内の結果の場所が含まれ、実際の結果は含まれません。デフォルト値:
true
- imgName: string
SpatialViewer UIに表示するイメージの名前を設定します。
- indexPath: string
HDFS内の索引パスです。useIndexがtrueの場合は、このパラメータを指定します。
例: /user/oracle/spatialviewer/TweetsJune - inputFormatClass: string
入力形式クラス。useIndexがfalseの場合に設定可能なオプションのパラメータ。入力形式クラスが指定されていない場合は、SparkContextのtextFileが使用されます。
例: oracle.spatial.hadoop.vector.geojson.mapred.GeoJsonInputFormat - isRenderingByAttributeNumber: boolean
trueの場合、attributeName属性は数値です。falseの場合、attributeNameはテキスト値の属性として処理されます。デフォルト値:
false
- jarWithNeededClasses: string
カスタムRecordInfoProviderまたはInputFormatのようなユーザー定義クラスを持つJAR名。InputFormatクラスまたはRecordInfoProviderクラスがAPI、またはHadoop APIクラスにない場合、ユーザー定義クラスのJARが提供されます。このjarを使用するには、/opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/libディレクトリに追加し、サーバーを再起動する必要があります。オプションのパラメータ。
例: myjar.jar - keyClass: string
入力形式のキーのクラス。入力形式が定義されている場合、このパラメータは必須です。
例: org.apache.hadoop.io.LongWritable - limits: string
制限をJSON文字列として設定します。たとえば、[{ "lowerLimit": 1, "upperLimit": 2}, { "lowerLimit": 2, "upperLimit": 3}]のようになります。色配列との関係は1対1である必要がありますオプションのパラメータ。
- maxAttributeValue: number
attributeName属性の最大可能値。オプションのパラメータ。デフォルト値:
0
- minAttributeValue: number
attributeName属性の最小可能値。オプションのパラメータ。デフォルト値:
0
- outputAsImage: boolean
trueの場合、結果はイメージとしてレンダリングされます。この場合、各レコードの色をレンダリングするために属性名を指定する必要があります。結果をイメージとしてレンダリングするには、入力を空間索引にする必要があることに注意してください。デフォルト値:
false
- outputPath: string
ジョブの出力パス。asynchronousがtrueの場合は、このパラメータを指定します。
例: /user/oracle/spatialviewer/FilterResult - queryWindow: string
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]]} - recordInfoProviderClass: string
空間情報を提供するクラス。useIndexがfalseの場合は、このパラメータを指定します。
例: oracle.spatial.spark.vector.recordinfoprovider.GeoJsonRecordInfoProvider - renderColors: string
属性の指定可能な色を設定します。デフォルトでは、色は#225d98、#D3D3D3、#ffa500、#600000です。オプションのパラメータ。
- spatialOperation: string
レコードを空間的にフィルタ処理する空間操作。指定できる値は、None、AnyInteract、IsInside、WithinDistanceおよびContainsです。デフォルト値はAnyInteractです。
例: AnyInteract - srid: integer(int32)
ジオメトリのSRID。useIndexがfalseの場合は、このパラメータを指定します。
例: 8307 - textAttributeValues: string
カンマで区切られた、使用可能なテキスト属性の値を設定します。色配列との関連は1対1である必要があります。つまり5つの値が候補として定義された場合、5色が定義される必要があります。例: very high,high,medium,low,very low.オプションのパラメータ。
- tolerance: number(double)
空間操作を実行するときに使用される許容差を表すdouble値。useIndexがfalseの場合は、このパラメータを指定します。
例: 0.05 - useIndex: boolean
索引が入力として使用される場合はtrue、それ以外の場合はfalseデフォルト値:
true
- valueClass: string
入力形式の値のクラス。入力形式が定義されている場合、このパラメータは必須です。
例: org.apache.hadoop.io.Text
レスポンス
サポートされるメディア・タイプ
- application/json
200レスポンス
要求が成功しました
ルート・スキーマ: RecordsInfo
型:
ソースの表示
object
- copyright(optional): string
例:
Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
- features(optional): array features
- geodetic(optional): boolean
ジオメトリが測地の場合はtrue、それ以外の場合はfalse。例:
true
- srs(optional): integer(int32)
ジオメトリのSRID。例:
8307
- type(optional): string
例:
FeatureCollection
ネストされたスキーマ: Feature
型:
ソースの表示
object
- _id(optional): string
地物ID。例:
1
- geometry(optional): object Geometry
- type(optional): string
例:
Feature
ネストされたスキーマ: Geometry
型:
ソースの表示
object
- coordinates(optional): array coordinates
- properties(optional): object properties
フィルタ処理されたレコードの追加フィールド(2.8.2.1「空間の索引付けクラスの構造」を参照)。たとえば、followers_count、friends_count、locationおよびuser_idという名前の追加フィールドを含めることができます
- type(optional): string
例:
Point
ネストされたスキーマ: properties
型:
object
フィルタ処理されたレコードの追加フィールド(2.8.2.1「空間の索引付けクラスの構造」を参照)。たとえば、followers_count、friends_count、locationおよびuser_idという名前の追加フィールドを含めることができます
ソースの表示
- followers_count(optional): string
例:
70
- friends_count(optional): string
例:
51
- location(optional): string
例:
Canada
- user_id(optional): string
例:
5039703
202レスポンス
非同期リクエストを受け入れました
ルート・スキーマ: AsyncSparkFilterJobResponse
型:
ソースの表示
object
- o:successCode(optional): string
成功コード。例:
SV-05011
- response(optional): string
レスポンスには、ジョブを追跡するためのリソース・マネージャWebアプリケーションのURLの場所が含まれています(Hadoopパラメータyarn.resourcemanager.webapp.addressの構成を参照してください)。例:
http://resource.manager.webapp:8088
- status(optional): string
成功またはエラー例:
success
- title(optional): string
サービスのタイトル。例:
Spatial Spark filter.
例
次の例では、cURLを使用してRESTリソースに対するGETリクエストを発行することによって、Spark索引を使用してフィルタ処理する方法を示しています。
curl -v -X GET "http://localhost:8045/spatialviewer/api/v1/spark/filter?fullResult=true&queryWindow=\{\"type\":\"Polygon\",\"coordinates\":\[\[-106,25,-106,30,-104,30,-104,25,-106,25\]\]\}&useIndex=true&indexPath=/user/oracle/tweetsJune" -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":"e8fd9cb3-8d1a-4c54-8583-9a4b682de2fd","geometry":{"type":"Point","coordinates":[-105.49998,28.19997]},"properties":{"RECORD_ID":"4789","followers_count":"13","friends_count":"199","location":"Chihuahua","user_id":"4092140"}}]}