From 3b8df33035c6a28aa05d665a49190e511a8b0ee2 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 17 Nov 2016 11:51:08 +0100 Subject: ol3: new layer switcher management --- chimere/static/chimere/js/jquery.chimere.js | 72 ++-------------------- chimere/templates/chimere/blocks/edit_widget.html | 1 - chimere/templates/chimere/blocks/head_chimere.html | 2 + .../templates/chimere/blocks/live_coordinates.html | 1 - chimere/templates/chimere/blocks/map.html | 2 - settings.py | 1 + 6 files changed, 7 insertions(+), 72 deletions(-) diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index 2df7d78..8f89e48 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -47,62 +47,6 @@ if (typeof language != 'undefined'){ var default_map_lbl = ''; -var LayerSwitcher = function(options){ - var o = this.options = options || {}; - var map = this.map = options.map; - - // element to render in: - var $div; - if(!o.div){ - $div = $('
'); $(document.body).append($div); - o.div = $div[0]; - } else { - var $div = typeof o.div == 'string' ? $('#'+o.div) : $(o.div); - $div.addClass("LayerSwitcher"); - } - this.div = o.div; - - var $baseDiv = $('
'); - var $overDiv = $('
'); - $div.append($baseDiv, $overDiv); - - - // array with layers: - var layers = map.getLayers().getArray(); - - // turn off other baselayers: - var otherBLoff = function(layer){ - $.each(layers, function(i,l){ - if(l!==layer && l.get('baselayer')) - { l.setVisible(false); } - }); - }; - - // go through each layer, render control and set handlers: - $.each(layers, function(i,l){ - var BL = l.get('baselayer'); - var $li = $('
'); - l.getVisible() ? $li.addClass('checked') : $li.removeClass('checked') ; - BL ? $li.addClass('radiobutton') : $li.addClass('checkbox') ; - var $ll = $(''); - // toggle on click - var $ld = $('
').click(function(){ - l.setVisible(!l.getVisible()); - l.get('baselayer') ? otherBLoff(l) :0; - }); - $ld.append($li,$ll); - BL ? $baseDiv.append($ld) : $overDiv.append($ld) ; - // bind checkbox state to layer event: - l.on('change:visible', function(e){ - this.getVisible() ? $li.addClass('checked') : $li.removeClass('checked') ; - }); - }); - if($baseDiv.children()[0] && $overDiv.children()[0]){ - $baseDiv.after('
'); - } - -}; // LayerSwitcher - function _zoom_to_resolution(zoom, proj_name){ var proj = ol.proj.get(proj_name); var maxResolution = ol.extent.getWidth(proj.getExtent()) / 256; @@ -333,6 +277,7 @@ function transformCoordToLonLat(coord) { EPSG_PROJECTION); map_options['restrictedExtent'] = settings.restricted_extent; }*/ + $.each(settings.map_layers, function(idx, layer){ // property for permalink layer.set('base-layer-idx', idx); @@ -436,19 +381,10 @@ function transformCoordToLonLat(coord) { settings.map_layers[settings.selected_map_layer]); */ - /* OL3-deprecated context menu - // manage the context menu - $('#map_menu_zoomin').bind("click", methods.zoomIn); - $('#map_menu_zoomout').bind("click", methods.zoomOut); - $('#map_menu_center').bind("click", methods.mapCenter); - */ - /* OL3-deprecated routing - */ - settings.layerSwitcher = new LayerSwitcher({ - map: settings.map, - div: 'layerSwitcher' - }); + settings.layerSwitcher = new ol.control.LayerSwitcher(); + settings.map.addControl(settings.layerSwitcher); + /* marker layer */ settings.iconStyles = new Object(); diff --git a/chimere/templates/chimere/blocks/edit_widget.html b/chimere/templates/chimere/blocks/edit_widget.html index be01569..79c3884 100644 --- a/chimere/templates/chimere/blocks/edit_widget.html +++ b/chimere/templates/chimere/blocks/edit_widget.html @@ -19,7 +19,6 @@ -
{% trans "To delete a vertice, hold the SHIFT key and click." %}
diff --git a/chimere/templates/chimere/blocks/head_chimere.html b/chimere/templates/chimere/blocks/head_chimere.html index c45d32c..de8d9bc 100644 --- a/chimere/templates/chimere/blocks/head_chimere.html +++ b/chimere/templates/chimere/blocks/head_chimere.html @@ -1,9 +1,11 @@ {% if not is_edit %} + {% endif %} + @@ -84,7 +83,6 @@ $("#{{map_id}}").show(); {% endif %} function update_permalink(){ - alert("hop"); $('#main-map').chimere('update_permalink'); }; diff --git a/settings.py b/settings.py index 5787ad4..092caec 100644 --- a/settings.py +++ b/settings.py @@ -74,6 +74,7 @@ CHIMERE_MINIATURE_BY_DEFAULT = False # OSM mapnik map CHIMERE_DEFAULT_MAP_LAYER = """new ol.layer.Tile({ style: 'Road', + title: 'OpenStreetMap', source: new ol.source.OSM() })""" -- cgit v1.2.3