spatial-d4science/doc/spatial-search.rst

2.0 KiB

Spatial Search

To enable the spatial query you need to add the spatial_query plugin to your ini file (See Configuration). This plugin requires the spatial_metadata plugin.

The extension adds the following call to the CKAN search API, which returns datasets with an extent that intersects with the bounding box provided:

/api/2/search/dataset/geo?bbox={minx,miny,maxx,maxy}[&crs={srid}]

If the bounding box coordinates are not in the same projection as the one defined in the database, a CRS must be provided, in one of the following forms:

  • urn:ogc:def:crs:EPSG::4326
  • EPSG:4326
  • 4326

As of CKAN 1.6, you can integrate your spatial query in the full CKAN search, via the web interface (see the Spatial Query Widget) or via the action API, e.g.:

POST http://localhost:5000/api/action/package_search
{
    "q": "Pollution",
    "extras": {
        "ext_bbox": "-7.535093,49.208494,3.890688,57.372349"
    }
}

Geo-Indexing your datasets

In order to make a dataset queryable by location, an special extra must be defined, with its key named 'spatial'. The value must be a valid GeoJSON geometry, for example:

{"type":"Polygon","coordinates":[[[2.05827, 49.8625],[2.05827, 55.7447], [-6.41736, 55.7447], [-6.41736, 49.8625], [2.05827, 49.8625]]]}

or:

{ "type": "Point", "coordinates": [-3.145,53.078] }

Every time a dataset is created, updated or deleted, the extension will synchronize the information stored in the extra with the geometry table.

Spatial Search Widget

Note: this plugin requires CKAN 1.6 or higher.

To enable the search map widget you need to add the spatial_query_widget plugin to your ini file (See Configuration). You also need to load both the spatial_metadata and the spatial_query plugins.

When the plugin is enabled, a map widget will be shown in the dataset search form, where users can refine their searchs drawing an area of interest.