diff options
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere-leaflet.js | 18 | ||||
| -rw-r--r-- | chimere/urls.py | 4 | ||||
| -rw-r--r-- | chimere/views.py | 4 |
3 files changed, 23 insertions, 3 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere-leaflet.js b/chimere/static/chimere/js/jquery.chimere-leaflet.js index b48a54e..f0ae75f 100644 --- a/chimere/static/chimere/js/jquery.chimere-leaflet.js +++ b/chimere/static/chimere/js/jquery.chimere-leaflet.js @@ -105,7 +105,8 @@ See the file COPYING for details. 'marker-cluster-large', 'marker-cluster-xlarge', 'marker-cluster-xxlarge' - ) + ), + extra_json_data: null }; var settings = {}; /* @@ -126,12 +127,13 @@ See the file COPYING for details. for (idx=0 ; idx < settings.map_layers.length ; idx++){ map_layers[settings.map_layer_names[idx]] = settings.map_layers[idx]; } - L.control.layers(map_layers).addTo(map); + settings.layer_control = L.control.layers(map_layers).addTo(map); if(settings.zoom && settings.lat && settings.lon){ map.setView([settings.lat, settings.lon], settings.zoom); } else { map.fitWorld(); } + settings.icons = new Object(); if (settings.enable_clustering){ settings.NumberedDivIcon = L.Icon.extend({ @@ -246,6 +248,18 @@ See the file COPYING for details. methods.loadCategories(); methods.loadGeoObjects(); + if (settings.extra_json_data){ + for (idx=0;idx<settings.extra_json_data.length;idx++){ + var json_data = settings.extra_json_data[idx]; + $.getJSON(json_data['url'], function(data) { + var geojsonLayer = new L.GeoJSON(data,{ + style:json_data['style'] + }); + settings.layer_control.addOverlay(geojsonLayer, + json_data['name']); + }); + } + } }, hidePopup: function (evt) { settings.map.closePopup(); diff --git a/chimere/urls.py b/chimere/urls.py index 164ef68..b0c01d7 100644 --- a/chimere/urls.py +++ b/chimere/urls.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -103,6 +103,8 @@ urlpatterns += patterns('chimere.views', 'processRouteFile', name='process_route_file'), url(r'^(?P<area_name>[a-zA-Z0-9_-]+/)?dyn/(?P<page_id>\w+)/$', 'extraPage', name='extra_page'), + url(r'^(?P<area_name>[a-zA-Z0-9_-]+/)?json/(?P<app_name>[a-zA-Z0-9_-]+)/(?P<filename>[a-zA-Z0-9_-]+).json$', 'get_json', + name='get-json'), # At the end, because it catches large url(r'^(?P<area_name>[a-zA-Z0-9_-]+)?', 'index', name="index"), ) diff --git a/chimere/views.py b/chimere/views.py index 136f34a..f58b7ec 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -828,6 +828,10 @@ def route(request, area_name, lon1, lat1, lonlat_steps, lon2, lat2, message) return HttpResponse(data) +def get_json(request, area_name='', app_name='', filename=''): + return HttpResponse(open(settings.STATIC_ROOT+app_name+'/json/'+filename+'.json'), + 'application/javascript', status=200) + def rss(request, area_name=''): ''' Redirect to RSS subscription page |
