Skip to main content

Mapscript based WMS framework for GeoDjango

Project description

The Django WMS Framework is a toolkit that makes it easy to build a Web Map Service (WMS) or a x-y-z Tile Map Service. Rendering of both vector and raster data formats are supported.

For complete documentation please go to http://django-wms.readthedocs.org

Requirements

The processing of spatial data in django-wms relies on MapServer and its python bindings MapScript. Raster data integration depends on the django-raster package. The use of PostGIS as the database backend is required as well, for raster ntegration PostGIS >= 2.0 is required (see also django-raster package).

Installation

  1. Install package with pip install django-wms

  2. Add “wms” to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = (
        ...
        'wms',
    )

Example

To create a mapping service, subclass the django-wms layer, map and view classes and connect them to an existing model in django that has a spatial field (such as Point, Polygon or MultiPolygon). An example wms_config.py module could be specified as follows

### wms_config.py

# Load django-wms classes
from wms import maps, layers, views

# Load model with spatial field (Point, Polygon or MultiPolygon)
from myapp.models import MySpatialModel


# Subclass the WmsVectorLayer class and point it to a spatial model.
# Use WmsRasterLayer for rasters
class MyWmsLayer(layers.WmsVectorLayer):
    model = MySpatialModel

# Subclass the WmsMap class and add the layer to it
class MyWmsMap(maps.WmsMap):
    layer_classes = [ MyWmsLayer ]

# Subclass the WmsView to create a view for the map
class MyWmsView(views.WmsView):
    map_class = MyWmsMap

With the WmsView subclass in place, the only thing left to do to create a functional map service is to hook the view into a url. An example url configuration urls.py could be

### urls.py

# Import the wms view
from myproject.wms_config import MyWmsView

# Add url patterns to setup map services from the view
urlpatterns = patterns('',

    # This creates a WMS endpoint
    url(r'^wms/$', MyWmsView.as_view(), name='wms'),

    # This creates a TMS endpoint
    url(r'^tile/(?P<layers>[^/]+)/(?P<z>[0-9]+)/(?P<x>[0-9]+)/(?P<y>[0-9]+)(?P<format>\.jpg|\.png)$',
        MyWmsView.as_view(), name='tms'),
)

The django-wms package will automatically detect the first spatial field it can find in MySpatialModel and create a WMS endpoint from the class based view. If the three arguments x, y and z are found in the urlpattern, the view functions as TMS endpoint.

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-wms-0.1.12.tar.gz (9.3 kB view details)

Uploaded Source

File details

Details for the file django-wms-0.1.12.tar.gz.

File metadata

  • Download URL: django-wms-0.1.12.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-wms-0.1.12.tar.gz
Algorithm Hash digest
SHA256 94825dbe6e934b4da98063cb3be2f29cf2242bd70f2e091f0e80cf3d41d81bc5
MD5 42f334f2e7a44a3a4d160939f9d51c9d
BLAKE2b-256 c359e0b78a875879171ba9edd29b41fb3d18e07092ac972fe5619cd8d1099f17

See more details on using hashes here.

Supported by

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