Skip to content

Instantly share code, notes, and snippets.

@s4l3h1
Created December 17, 2017 00:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s4l3h1/9a91d62a4b29e2b4b112197c103f1158 to your computer and use it in GitHub Desktop.
Save s4l3h1/9a91d62a4b29e2b4b112197c103f1158 to your computer and use it in GitHub Desktop.
GeoServer tile with django
import os
from django.conf import settings
from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponseRedirectBase
def http_redirect(request=HttpRequest):
bbox = [float(i) for i in request.GET.get('bbox').split(',')[:4]]
layers = request.GET.get('layers').replace(':', '_')
srs = request.GET.get('srs').replace(':', '_')
zoom = "_15"
tmp = '079_073/020379_018777.png'
target = os.path.join(settings.GEOSERVER_DATADIR, 'gwc', layers, srs + zoom, tmp)
return HttpResponseRedirectBase(target)
def http_simple(request=HttpRequest):
bbox = [float(i) for i in request.GET.get('bbox').split(',')[:4]]
layers = request.GET.get('layers').replace(':', '_')
srs = request.GET.get('srs').replace(':', '_')
zoom = "_15"
tmp = '079_073/020379_018777.png'
target = os.path.join(settings.GEOSERVER_DATADIR, 'gwc', layers, srs + zoom, tmp)
def chunk_file(f, chunksize=4096):
return iter(lambda: f.read(chunksize), b'')
buffer = b''
# response.content = b''
with open(target, 'rb') as f:
for buf in chunk_file(f):
buffer += buf
return HttpResponse(content=buffer, content_type='image/png')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment