Skip to main content

Serve vectorial map layers with Django

Project description

django-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 :

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 are low-fi precision, common list of fields, etc.

GeoJSON template filter

Will work either for a model, a geometry field or a queryset.

{% load geojson_tags %}

var feature = {{ object|geojsonfeature }};

var geom = {{ object.geom|geojsonfeature }};

var collection = {{ object_list|geojsonfeature }};

Dump GIS models

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.

AUTHORS

Relies massively on Sean Gillies’ geojson python module.

makinacom

LICENSE

  • Lesser GNU Public License

CHANGELOG

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-geojson-1.2.0.zip (16.0 kB view details)

Uploaded Source

File details

Details for the file django-geojson-1.2.0.zip.

File metadata

  • Download URL: django-geojson-1.2.0.zip
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-geojson-1.2.0.zip
Algorithm Hash digest
SHA256 e349e71b18e2afc15566b83f591e443a3339b37874e32dd0bc9b6aaa00787efc
MD5 a5485de74d84278b2c1b64e543a7df56
BLAKE2b-256 8859019b998fef7df964f554d9bf4966097f6806ddf0a0186473c29f2fc69c9a

See more details on using hashes here.

Supported by

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