25 return render(request, 'qmsk.pngtile/index.html', dict( |
28 return render(request, 'qmsk.pngtile/index.html', dict( |
26 site_name = u"...", |
29 site_name = u"...", |
27 name = name, |
30 name = name, |
28 title = store.title(name), |
31 title = store.title(name), |
29 breadcrumb = store.breadcrumb(name), |
32 breadcrumb = store.breadcrumb(name), |
30 index_tree = tree, |
33 tree = tree, |
31 index_items = sorted(items), |
34 index_items = sorted(items), |
32 )) |
35 )) |
33 |
36 |
34 def image (request, name): |
37 def image (request, name): |
35 pass |
38 store = pngtile.STORE |
|
39 |
|
40 try: |
|
41 image, name = store.open(name) |
|
42 tree = store.tree(os.path.dirname(name)) |
|
43 except pngtile.NotFound: |
|
44 raise http.Http404 |
|
45 except pngtile.InvalidImage: |
|
46 return http.HttpResponseBadRequest(name) |
|
47 except pngtile.UncachedImage: |
|
48 return http.HttpResponseBadRequest(name) |
|
49 except pngtile.Error as error: |
|
50 return http.HttpResponseServerError(str(error)) |
|
51 except pypngtile.Error as error: |
|
52 return http.HttpResponseServerError(str(error)) |
|
53 |
|
54 image_info = image.info() |
|
55 |
|
56 map_config = dict( |
|
57 tiles_url = store.tiles_url(name), |
|
58 tiles_mtime = 0, |
|
59 |
|
60 tile_url = '{tiles_url}?t={tiles_mtime}&x={x}&y={y}&zoom={z}', |
|
61 tile_size = store.TILE_SIZE, |
|
62 tile_zoom = store.TILE_ZOOM, |
|
63 |
|
64 image_url = '{tiles_url}?w={w}&h={h}&x={x}&y={y}&zoom={z}', |
|
65 image_width = image_info['img_width'], |
|
66 image_height = image_info['img_height'], |
|
67 ) |
|
68 |
|
69 return render(request, 'qmsk.pngtile/image.html', dict( |
|
70 site_name = u"...", |
|
71 name = name, |
|
72 title = store.title(name), |
|
73 breadcrumb = store.breadcrumb(name), |
|
74 tree = tree, |
|
75 map_config = json.dumps(map_config), |
|
76 )) |
|
77 |