Browse Source

Add a view with debug tiles

Baptiste Jonglez 6 years ago
parent
commit
0d26ac4081
2 changed files with 28 additions and 1 deletions
  1. 7 1
      panorama/urls.py
  2. 21 0
      panorama/views.py

+ 7 - 1
panorama/urls.py

@@ -1,9 +1,10 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
+from django.conf import settings
 from django.conf.urls import include, url
 
-from .views import MainView, PanoramaUpload, PanoramaView, PanoramaGenTiles, LocateReferencePointView, LocateCustomPointView, CreateReferencePoint
+from .views import MainView, PanoramaUpload, PanoramaView, PanoramaGenTiles, LocateReferencePointView, LocateCustomPointView, CreateReferencePoint, tile_debug_view
 
 
 urlpatterns = [
@@ -15,3 +16,8 @@ urlpatterns = [
     url(r'^pano/view/(?P<pk>\d+)/$', PanoramaView.as_view(), name="view_pano"),
     url(r'^pano/gen_tiles/(?P<pk>\d+)/$', PanoramaGenTiles.as_view(), name="gen_tiles"),
 ]
+
+if settings.DEBUG:
+    urlpatterns += [
+        url(r'^debug/tile/(?P<z>.+)/(?P<x>.+)/(?P<y>.+).jpg$', tile_debug_view, name="tile_debug"),
+    ]

+ 21 - 0
panorama/views.py

@@ -10,6 +10,8 @@ from django.views.generic import CreateView, DetailView, RedirectView, ListView,
 from django.views.decorators.csrf import ensure_csrf_cookie
 from django.contrib.auth.mixins import LoginRequiredMixin
 
+from PIL import Image, ImageDraw
+
 from .models import Point, Panorama, ReferencePoint
 from .forms import SelectReferencePointForm, CustomPointForm, PanoramaForm, ReferencePointForm
 
@@ -131,3 +133,22 @@ class LocateCustomPointView(MainView):
             context['located_point_lat'] = point.latitude
             context['located_point_lon'] = point.longitude
         return super(LocateCustomPointView, self).render_to_response(context)
+
+
+def tile_debug_view(request, *args, **kwargs):
+    x = kwargs['x']
+    y = kwargs['y']
+    z = kwargs['z']
+    res = HttpResponse(content_type='image/jpeg')
+    img = Image.new('RGB', (256, 256), (200, 50, 50))
+    draw = ImageDraw.Draw(img)
+    draw.text((50, 50), "x = " + x)
+    draw.text((50, 100), "y = " + y)
+    draw.text((50, 150), "z = " + z)
+    draw.line((0, 0, 0, 255))
+    draw.line((0, 255, 255, 255))
+    draw.line((255, 255, 255, 0))
+    draw.line((255, 0, 0, 0))
+    img.save(res, format='jpeg')
+    del draw
+    return res