django-extended-ol is a Django app that extends the basic OpenLayers Widget.
- Custom WMTS base_layer with fixed resolutions
Add "olwidget" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ..., "olwidget", ]
Configure olwidget in your settings.py, here's an example:
OLWIDGET = { "globals": { "srid": 2056, "default_center": [2551470, 1211190], # optional "default_resolution": 18, # optional "extent": [2420000, 1030000, 2900000, 1360000], "resolutions": [250, 100, 50, 20, 10, 5, 2.5, 2, 1.5, 1, 0.5, 0.25, 0.125, 0.0625] }, "wmts": { "layer_name": 'plan_cadastral', "style": 'default', "matrix_set": 'EPSG2056', "attributions": '<a target="new" href="https://sitn.ne.ch/web/conditions_utilisation/contrat_SITN_MO.htm' + '">© SITN</a>', # optional "url_template": 'https://sitn.ne.ch/mapproxy95/wmts/1.0.0/{layer}/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png', "request_encoding": 'REST', # optional "format": 'image/png' # optional } }
You can now use WMTSWidget in your gis forms:
gis_widget = WMTSWidget
You can also use it in your admin.py:
from django.contrib.gis import admin from .models import YourGeomModel from olwidget.admin import WMTSGISModelAdmin admin.site.register(YourGeomModel, WMTSGISModelAdmin)
Start the development server and visit the admin.