--- id: geo title: "Spatial filters" --- 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: ```json { "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: ```json "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|