Filter spatially the records in a spatial index using the Hadoop API

get

/spatialviewer/api/v1/hadoop/filter

Filter spatially the records using the Hadoop API. Note that you can use the service response as data source for the Map API to display the results on map. For example:

// Default http method when fetching remote geospatial contents
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});

Request

Query Parameters
  • if true the operation is runned asynchronously.
    Default Value: false
  • Path of the file or files in HDFS to categorize. Specify this parameter if useIndex is false.
    Example: /user/oracle/spatialviewer/tweetsJune.json
  • The distance is required when the spatialOperation is WithinDistance. For projected data the distance is in the same unit as the unit of projection. For geodetic data the distance is in meters.
    Example: 1000
  • if false and asynchronously is false then the response contains the location of the results in HDFS and not the actual results.
    Default Value: true
  • true if we want to get a heat map as result. If false then the data actual shape will be returned. False by default.
    Default Value: false
  • The index name. Specify this parameter if useIndex is true.
    Example: TweetsJune
  • The input format class. Optional parameter that can be set if useIndex is false. If the input format class is not specified then the SparkContext's textFile is used.
    Example: oracle.spatial.hadoop.vector.geojson.mapred.GeoJsonInputFormat
  • jar name with the user-defined classes like custom RecordInfoProvider or InputFormat. If the InputFormat class or the RecordInfoProvider class is not in the API, or in the hadoop API classes, then a jar with the user-defined classes must be provided. To be able to use this jar the user must add it in the /opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/lib directory and restart the server. Optional parameter.
    Example: myjar.jar
  • Number of columns in the heat map grid. 600 by default.
  • Number of rows in the heat map grid. 600 by default.
  • The job output path. Specify this parameter if asynchronous is true.
    Example: /user/oracle/spatialviewer/FilterResult
  • The queryWindow in GeoJSON format.
    Note that the query window can be created using the Map API toolbar standard tools like the Rectangle tool:
    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]]}
  • The class that provides the spatial information. Specify this parameter if useIndex is false.
    Example: oracle.spatial.hadoop.vector.geojson.GeoJsonRecordInfoProvider
  • The spatial operation to spatially filter the records. The possible values are None, AnyInteract, IsInside, WithinDistance and Contains. The default value is AnyInteract.
    Example: AnyInteract
  • SRID of the geometries. Specify this parameter if useIndex is false.
    Example: 8307
  • Double value that represents the tolerance used when performing spatial operations. Specify this parameter if useIndex is false.
    Example: 0.05
  • true if an index is used as input, false otherwise.
    Default Value: true
Back to Top

Response

Supported Media Types

200 Response

successful request
Body ()
Root Schema : RecordsInfo
Type: object
Show Source
Nested Schema : features
Type: array
Show Source
Nested Schema : Feature
Type: object
Show Source
Nested Schema : Geometry
Type: object
Show Source
Nested Schema : coordinates
Type: array
Show Source
Example:
[
    -73.86659,
    50.41706
]
Nested Schema : properties
Type: object
Extra fields of the filtered records (see 2.8.2.1 Spatial Indexing Class Structure). For example we can have extra fields named followers_count, friends_count, location and user_id
Show Source

202 Response

accepted asynchronous request
Body ()
Root Schema : AsyncHadoopFilterJobResponse
Type: object
Show Source
Back to Top

Examples

The following example shows how to filter using a Hadoop index by submitting a GET request on the REST resource using cURL.

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" 

Example of Response Header

The following shows an example of the response header.

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

Example of Response Body

The following example shows the contents of the response body in JSON format, including one record:

{"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"}}]} 
Back to Top