Manipulating french regions, départements, communes, etc. polygons from OpenStreetMap or IGN, for display on maps using leaflet.

Data import from OSM

Shapefiles are taken from (also shared on

Different resolution (from 5 meters to 100 meters can be used depending on the scale of maps to display).

The following example imports shapes for regions, departements, arrondissements, epci and communes:

$ cubicweb/bin/cubicweb-ctl osmfrance_import_shp <myinstance> \
> --regions=path/to/ \
> --departements=path/to/ \
> --arrondissements=path/to/ \
> --epci=path/to/ \
> --communes=path/to/

Data import from IGN

Shapefiles are taken from GEOFLA version 1.1:

$ cubicweb/bin/cubicweb-ctl ign_import_shp <myinstance>
> --departements=path/to/DEPARTEMENT.SHP \
> --arrondissements=path/to/ARRONDISSEMENT.SHP \
> --communes=path/to/COMMUNE.SHP

Queries on data

The following query returns the polygon corners (as latitude, longitude coordinates) for Communes (cities) only:

Any DISPLAY(G, 4326) LIMIT 10 WHERE X geometry G, X is Commune

The following returns all types:

Any DISPLAY(G, 4326) LIMIT 10 WHERE X geometry G

Displaying data

The leaflet cube can be used for displaying these polygons on a map; the CW view used for that is leaflet-geojson

For example, the query:

Any DISPLAY(G, 4326),X LIMIT 20 WHERE X geometry G, X is Departement

should display 20 departements, using X (the Departement eid) as Z value (color value) using a yellow-red colormap.

The corresponding URL using the leaflet view is:

source repository
test environmentcubicweb-osmfrance env
owned byjroy, rcardona
may be discussed on<not specified>
use license<not specified>