Add GeoJSON as an output option for datasette queries.
Install this plugin in the same environment as Datasette.
datasette install datasette-geojson
To render GeoJSON, add a
.geojson extension to any query URL that includes a
geometry column. That column should be a valid GeoJSON geometry.
wget -O neighborhoods.geojson https://opendata.arcgis.com/datasets/3525b0ee6e6b427f9aab5d0a1d0a1a28_0.geojson geojson-to-sqlite boston.db neighborhoods neighborhoods.geojson --spatial-index # create a spatial index datasette serve boston.db --load-extension spatialite
If you're using Spatialite, the geometry column will be in a binary format. If not, make sure the
geometry column is a well-formed GeoJSON geometry. If you used
shapefile-to-sqlite, you should be all set.
Run this query in Datasette and you'll see a link to download GeoJSON:
select rowid, OBJECTID, Name, Acres, Neighborhood_ID, SqMiles, ShapeSTArea, ShapeSTLength, geometry from neighborhoods order by rowid limit 101
Note that the geometry column needs to be explicitly named
geometry or you won't get the option to export GeoJSON. If you want to use a different column, rename it with
SELECT other AS geometry FROM my_table.
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-geojson python3 -mvenv venv source venv/bin/activate
Or if you are using
Now install the dependencies and tests:
pip install -e '.[test]'
To run the tests: