Skip to main content

Serve vectorial map layers with Django

Project description

django-geojson

See the documentation for more information.

django-geojson is a set of tools to manipulate GeoJSON with Django >= 3.2:

  • (De)Serializer for (Geo)Django objects, querysets and lists

  • Base views to serve GeoJSON map layers from models

  • GeoJSON model and form fields to avoid spatial database backends (compatible with django-leaflet for map widgets)

Documentation Status https://img.shields.io/pypi/v/django-geojson.svg https://img.shields.io/pypi/dm/django-geojson.svg https://travis-ci.org/makinacorpus/django-geojson.png?branch=master https://coveralls.io/repos/makinacorpus/django-geojson/badge.png?branch=master

AUTHORS

Version 1.X:

  • Daniel Sokolowski, serializer snippet

  • ozzmo, python 2.6 compatibility

makinacom

LICENSE

Lesser GNU Public License

CHANGELOG

4.2.0 (2025-10-03)

  • Drop Python 3.8, Django 4.0, and Django 4.1.

  • Support Python 3.13, Django 5.1 and Django 5.2.

4.1.0 (2024-05-13)

  • Drop Python 3.7, Django 3.2. Support Python 3.11 and 3.12, Django 4.2 and 5.0. #123

4.0.0 (2022-10-17)

  • Drop support for Python < 3.7 / Django < 3.2

  • Remove jsonfield dependency in favor of django.db.models.JSONField

    WARNING : This can break your migration. jsonfield used to create a text column for your json data when running ‘makemigrations’. However, django.db.models.JSONField creates a json column using database-backend specific column types (ie jsonb on postgresql). As such your model field that used to be a text column is now a jsonb column.

3.2.1 (2022-02-21)

  • Set default initial value to form field #116

3.2.0 (2021-04-15)

  • Support Django 3.2.

3.1.0 (2020-10-27)

  • Drop support for Python 2 and Django < 2.2

  • Fix warnings in Django 3.1

  • Use explicit srid in get_queryset #106

  • Add support for crs_type using the view options #107

3.0.0 (2020-03-02)

  • Fix with_modelname option after first iteration

  • Drop Django 1.11 support

  • jsonfield 3.0 support, drop 2.x support

2.12.0 (2018-12-05)

  • Change media type to ‘application/geo+json’

  • Make with_modelname option available in views

  • Drop Django 1.8 support.

  • Fixed unnecessary GDAL dependency. (#100, thanks @coredumperror)

2.11.0 (2017-12-05)

  • Django 2.0 support.

  • Fix setup.py encoding error.

2.10.0 (2017-02-28)

  • python 3.5 support.

2.9.1 (2016-08-22)

** Bug fixes **

  • Remove deprecation warnings with Django 1.8 (#78, thanks @AchilleAsh)

2.9.0 (2016-02-08)

** New features **

  • handle natural keys in views (#74, thanks Achille Ash!)

** Bug fixes **

  • Add Django 1.9 compatibility (#69, thanks Julien Le Sech!)

  • Fix imports in view.py to work without GEOS (#62, thanks Kevin Cooper!)

2.8.1 (2015-06-17)

** Bug fixes**

  • Fixed detection of GEOS (thanks Kevin Cooper!)

2.8.0 (2015-04-17)

** New features **

  • Support GeoJSON specification for named crs (thanks Alvin Lindstam)

** Bug fixes **

  • Add python 3.2 compatibility (thanks Nikolay Korotkiy, fixes #55)

  • Fix tests on Django >= 1.7 (thanks Manel Clos)

2.7.0 (2015-02-21)

** New features **

  • Add a with_modelname option to serializer

** Bug fixes **

  • change ‘fields’ to ‘properties’ in code example

  • Adds a warning for “Module version, as defined in PEP-0396

2.6.0 (2014-07-21)

** New features **

  • Django GeoJSON fields without libgeos installed (thanks Florent Lebreton)

  • Properties can be a tuple (fixes #34)

2.5.0 (2014-06-03)

** New features **

  • Add vector tiles view

  • Improved geojsonfeature template tag (fixes #15, #16)

  • Add various GeoJSON fields, for each geometry type

** Bug fixes **

  • Fix (de)serializers not being usable from command-line (fixes #28)

  • Fix import attempt for django-leaflet (fixes #27), by Seyi Ogunyemi

  • Fix missed SRID after copying a geometry in _handle_geom, by Biel Frontera

** Internal changes **

  • Specify django-leaflet minimal version for GeoJSON model field

  • Got rid of shapely for deserialization

2.4.0 (2014-03-22)

  • Add GeoJSON fields

2.3.0 (2014-02-08)

  • Python 3 support (thanks @amarandon)

  • Add bbox at feature level (thanks @7wonders)

2.2.0 (2013-12-18)

  • Deserialization: add ability to specify model name as option (thanks @Vross)

  • Deserialization: look-up ìd value in properties whe missing at feature level: (thanks @Vross)

2.1.1 (2013-08-21)

  • Set default SRID to 4326 in generic GeoJSON views.

2.1.0 (2013-08-19)

  • Serialize reversed relations using natural keys (fixes #8)

  • Support empty geometries (None or NULL in Db)

  • Fix serializing property in upper class

2.0.1 (2013-07-10)

  • Fix usage of simplify.

  • Expose force2d option in view

  • Allow to have pk or id in properties if explicitly listed

2.0.0 (2013-07-09)

  • Complete rewrite using @jeffkistler and @glenrobertson code

  • CRS is added to GeoJSON ouput by default

  • Ability to build pk dynamically by passing a lambda

  • Ability to provide a bbox

  • Ability to use Django natural keys

  • Support of ValuesQuerySet

  • Support of ForeignKey and ManyToMany

  • Added force2d option

** Backwards incompatible changes **

  • Geom field is not guessed automatically : Use geometry_field option, default is 'geom'.

  • no more pk in properties : use feature id, or list pk in properties explicitly.

  • fields list in GeoJSONLayer was renamed properties.

1.2.0 (2013-05-22)

  • Shapely is now optional (used for deserialization only)

  • Add Django to requirements

  • Skip a step in GeoJSON conversion of geometries (fixes #6)

1.1.0 (2013-03-06)

  • Django 1.5 support

  • Fix template tag geojsonfeature on empty geometries

1.0.0 (2012-08-03)

  • Initial working version.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page