django-geojson is a collection of helpers to serialize GeoDjango objects into GeoJSON.
INSTALL
pip install django-geojson
If you need to load data from GeoJSON files (deserialize), you’ll also need shapely
pip install "django-geojson [shapely]"
USAGE
Add djgeojson to your applications :
# settings.py
INSTALLED_APPS += (
'djgeojson',
)
(not required for views)
GeoJSON layer view
Very useful for web mapping :
# urls.py from djgeojson.views import GeoJSONLayerView ... url(r'^data.geojson$', GeoJSONLayerView.as_view(model=MushroomSpot), name='data'),
Consume the vector layer as usual, for example, with Leaflet loaded in Ajax:
var layer = L.geoJson();
map.addLayer(layer);
$.getJSON("{% url 'data' %}", function (data) {
layer.addData(data);
});
Inherit only if you need a reusable set of options :
# views.py
from djgeojson.views import GeoJSONLayerView
class MapLayer(GeoJSONLayerView):
# Options
precision = 4 # float
simplify = 0.5 # generalization
# urls.py
from .views import MapLayer, MeetingLayer
...
url(r'^mushrooms.geojson$', MapLayer.as_view(model=MushroomSpot, fields=('name',)), name='mushrooms')
Most common use-cases of sub-classing are low-fi precision, common list of fields between several views, etc.
Options are :
properties : list of properties names, or dict for mapping field names and properties
simplify : generalization of geometries (See simplify())
precision : number of digit after comma
geometry_field : name of geometry field (default: geom)
srid : projection (default: 4326, for WGS84)
GeoJSON template filter
Mainly useful to dump features in HTML output and bypass AJAX call :
// For example, with Leaflet
L.geoJson({{ object_list|geojsonfeature|safe}}).addTo(map);
Will work either for a model, a geometry field or a queryset.
{% load geojson_tags %}
var feature = {{ object|geojsonfeature|safe }};
var geom = {{ object.geom|geojsonfeature|safe }};
var collection = {{ object_list|geojsonfeature|safe }};
Basic serializer
from djgeojson.serializers import Serializer as GeoJSONSerializer GeoJSONSerializer().serialize(Restaurants.objects.all(), use_natural_keys=True)
Dump GIS models, or fixtures
Register the serializer in your project :
# settings.py
SERIALIZATION_MODULES = {
'geojson' : 'djgeojson.serializers'
}
Command-line dumpdata can export files, viewable in GIS software like QGis :
django dumpdata --format=geojson yourapp.Model > export.geojson
Works with loaddata as well, which can now import GeoJSON files.
LICENSE
Lesser GNU Public License
CHANGELOG
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.
Metadata
Release files for django-geojson 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-geojson-2.0.0.zip | 20.6 kB | Without provenance | Details for django-geojson-2.0.0.zip |
Release files / django-geojson-2.0.0.zip
| Download URL | django-geojson-2.0.0.zip |
|---|---|
| Size | 20.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ef2ff7777d134d7ce988ef76f4e93c1e1e034c8cf6596253a2cf894d791be50
|
|
BLAKE2b-256 checksum How to use checksums |
c67c0a046bf68b2ac12e9a9621f1b434ca4a63270de2131c07cbf4703b0595e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-geojson 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.