layout: doc_page title: “Geographic Queries”

Geographic Queries

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"]
					}]
				}
			}
		}
	}
}
propertydescriptionrequired?
dimNameThe 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
dimsA list of dimension names that comprise a spatial dimension.no

Spatial Filters

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]
    }
}

Bounds

Rectangular

propertydescriptionrequired?
minCoordsList of minimum dimension coordinates for coordinates [x, y, z, …]yes
maxCoordsList of maximum dimension coordinates for coordinates [x, y, z, …]yes

Radius

propertydescriptionrequired?
coordsOrigin coordinates in the form [x, y, z, …]yes
radiusThe float radius valueyes