Spatial filters
Apache Druid supports two query languages: Druid SQL and native queries. This document describes functionality that is only available in the native language.
Apache Druid supports filtering specially spatially indexed columns based on an origin and a bound.
Spatial indexing
In any of the data specs, there is the option of providing spatial dimensions. For example, for a JSON data spec, spatial dimensions can be specified as follows:
{
    "type": "hadoop",
    "dataSchema": {
        "dataSource": "DatasourceName",
        "parser": {
            "type": "string",
            "parseSpec": {
                "format": "json",
                "timestampSpec": {
                    "column": "timestamp",
                    "format": "auto"
                },
                "dimensionsSpec": {
                    "dimensions": [],
                    "spatialDimensions": [{
                        "dimName": "coordinates",
                        "dims": ["lat", "long"]
                    }]
                }
            }
        }
    }
}
Spatial filters
| property | description | required? | 
|---|---|---|
| dimName | The name of the spatial dimension. A spatial dimension may be constructed from multiple other dimensions or it may already exist as part of an event. If a spatial dimension already exists, it must be an array of coordinate values. | yes | 
| dims | A list of dimension names that comprise a spatial dimension. | no | 
The grammar for a spatial filter is as follows:
"filter" : {
    "type": "spatial",
    "dimension": "spatialDim",
    "bound": {
        "type": "rectangular",
        "minCoords": [10.0, 20.0],
        "maxCoords": [30.0, 40.0]
    }
}
Bound types
rectangular
| property | description | required? | 
|---|---|---|
| minCoords | List of minimum dimension coordinates for coordinates [x, y, z, …] | yes | 
| maxCoords | List of maximum dimension coordinates for coordinates [x, y, z, …] | yes | 
radius
| property | description | required? | 
|---|---|---|
| coords | Origin coordinates in the form [x, y, z, …] | yes | 
| radius | The float radius value | yes | 
polygon
| property | description | required? | 
|---|---|---|
| abscissa | Horizontal coordinate for corners of the polygon | yes | 
| ordinate | Vertical coordinate for corners of the polygon | yes | 
