summaryrefslogtreecommitdiffstats
path: root/webapp/django/contrib/gis/shortcuts.py
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/django/contrib/gis/shortcuts.py')
-rw-r--r--webapp/django/contrib/gis/shortcuts.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/webapp/django/contrib/gis/shortcuts.py b/webapp/django/contrib/gis/shortcuts.py
new file mode 100644
index 0000000000..5310e58eef
--- /dev/null
+++ b/webapp/django/contrib/gis/shortcuts.py
@@ -0,0 +1,31 @@
+import cStringIO, zipfile
+from django.http import HttpResponse
+from django.template import loader
+
+def compress_kml(kml):
+ "Returns compressed KMZ from the given KML string."
+ kmz = cStringIO.StringIO()
+ zf = zipfile.ZipFile(kmz, 'a', zipfile.ZIP_DEFLATED, False)
+ zf.writestr('doc.kml', kml)
+ zf.close()
+ kmz.seek(0)
+ return kmz.read()
+
+def render_to_kml(*args, **kwargs):
+ "Renders the response as KML (using the correct MIME type)."
+ return HttpResponse(loader.render_to_string(*args, **kwargs),
+ mimetype='application/vnd.google-earth.kml+xml kml')
+
+def render_to_kmz(*args, **kwargs):
+ """
+ Compresses the KML content and returns as KMZ (using the correct
+ MIME type).
+ """
+ return HttpResponse(compress_kml(loader.render_to_string(*args, **kwargs)),
+ mimetype='application/vnd.google-earth.kmz')
+
+
+def render_to_text(*args, **kwargs):
+ "Renders the response using the MIME type for plain text."
+ return HttpResponse(loader.render_to_string(*args, **kwargs),
+ mimetype='text/plain')