From 5184206b49eca0ef1744e26d07ee853abe932084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 28 Nov 2017 14:14:03 +0100 Subject: [PATCH] allow -2 and -1 zoom --- src/c3nav/mapdata/urls.py | 4 ++-- src/c3nav/mapdata/views.py | 2 +- src/c3nav/site/static/site/js/c3nav.js | 2 ++ src/c3nav/tileserver/wsgi.py | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/c3nav/mapdata/urls.py b/src/c3nav/mapdata/urls.py index 184d1f36..47d77061 100644 --- a/src/c3nav/mapdata/urls.py +++ b/src/c3nav/mapdata/urls.py @@ -3,8 +3,8 @@ from django.conf.urls import url from c3nav.mapdata.views import get_cache_package, map_history, tile, tile_access urlpatterns = [ - url(r'^(?P\d+)/(?P\d+)/(?P-?\d+)/(?P-?\d+).png$', tile, name='mapdata.tile'), - url(r'^(?P\d+)/(?P\d+)/(?P-?\d+)/(?P-?\d+)/(?P\d(-\d)*).png$', tile, + url(r'^(?P\d+)/(?P-?\d+)/(?P-?\d+)/(?P-?\d+).png$', tile, name='mapdata.tile'), + url(r'^(?P\d+)/(?P-?\d+)/(?P-?\d+)/(?P-?\d+)/(?P\d(-\d)*).png$', tile, name='mapdata.tile'), url(r'^history/(?P\d+)/(?Pbase|composite)\.(?Ppng|data)$', map_history, name='mapdata.map_history'), diff --git a/src/c3nav/mapdata/views.py b/src/c3nav/mapdata/views.py index ebcc8471..66834878 100644 --- a/src/c3nav/mapdata/views.py +++ b/src/c3nav/mapdata/views.py @@ -55,7 +55,7 @@ def tile(request, level, zoom, x, y, access_permissions=None): enforce_tile_secret_auth(request) zoom = int(zoom) - if not (0 <= zoom <= 5): + if not (-2 <= zoom <= 5): raise Http404 cache_package = CachePackage.open_cached() diff --git a/src/c3nav/site/static/site/js/c3nav.js b/src/c3nav/site/static/site/js/c3nav.js index e7addda2..4df49256 100644 --- a/src/c3nav/site/static/site/js/c3nav.js +++ b/src/c3nav/site/static/site/js/c3nav.js @@ -818,6 +818,8 @@ LevelControl = L.Control.extend({ addLevel: function (id, title) { this._tileLayers[id] = L.tileLayer((c3nav.tile_server || '/map/') + String(id) + '/{z}/{x}/{y}.png', { + minZoom: -2, + maxZoom: 5, bounds: L.GeoJSON.coordsToLatLngs(c3nav.bounds) }); var overlay = L.layerGroup(); diff --git a/src/c3nav/tileserver/wsgi.py b/src/c3nav/tileserver/wsgi.py index 757260f4..eb6cd099 100644 --- a/src/c3nav/tileserver/wsgi.py +++ b/src/c3nav/tileserver/wsgi.py @@ -135,7 +135,7 @@ class TileServer: level, zoom, x, y = match.groups() zoom = int(zoom) - if not (0 <= zoom <= 5): + if not (-2 <= zoom <= 5): return self.not_found(start_response, b'zoom out of bounds.') # do this to be thread safe