diff options
-rw-r--r-- | chimere/static/chimere/css/styles.css | 6 | ||||
-rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 161 |
2 files changed, 81 insertions, 86 deletions
diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css index 82a76e7..aaa70a4 100644 --- a/chimere/static/chimere/css/styles.css +++ b/chimere/static/chimere/css/styles.css @@ -1005,12 +1005,14 @@ ul#multimedia_list_content li.multimedia{ } #waiting-content { - width: 35px; + width: 100px; position: relative; margin: 0 auto; padding: 0; - border: 1px solid #ccc; + border: 1px solid #eee; text-align: center; + background-color: #fff; + padding-top: 1em; } /* openlayer customisation */ diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index 7294b28..64ad2b1 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -276,26 +276,6 @@ function transformCoordToLonLat(coord) { */ init: function ( options ) { /* Manage parameters */ - /* OL3-deprecated-routing - if (defaults.icon_start == null && typeof STATIC_URL != 'undefined'){ - defaults.icon_start = new OpenLayers.Icon( - STATIC_URL + "chimere/img/flag-start.png", - new OpenLayers.Size(32, 32), - new OpenLayers.Pixel(0, -32)); - } - if (defaults.icon_step == null && typeof STATIC_URL != 'undefined'){ - defaults.icon_step = new OpenLayers.Icon( - STATIC_URL + "chimere/img/flag-step.png", - new OpenLayers.Size(32, 32), - new OpenLayers.Pixel(0, -32)); - } - if (defaults.icon_end == null && typeof STATIC_URL != 'undefined'){ - defaults.icon_end = new OpenLayers.Icon( - STATIC_URL + "chimere/img/flag-finish.png", - new OpenLayers.Size(32, 32), - new OpenLayers.Pixel(0, -32)); - } - */ if (defaults.map_layers == null || ! defaults.map_layers.length){ defaults.map_layers = [ new ol.layer.Tile({ @@ -355,6 +335,10 @@ 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); + }); settings.view = new ol.View(view_options); var map_options = { @@ -441,67 +425,6 @@ function transformCoordToLonLat(coord) { settings.map.addControl(contextmenu); } - /* Manage permalink */ - /* OL3-deprecated permalink - if (!settings.edition){ - if (settings.permalink == null && !settings.edition) { - var permalink_options = {}; - if (settings.permalink_element){ - // hard to understand from OL documentation... - permalink_options["div"] = settings.permalink_element; - } - settings.permalink = new OpenLayers.Control.Permalink( - permalink_options); - } - // HACK new permalink createParams method - // FIXME when facilities are given to personalize the permalink - var oldCreateParams = settings.permalink.createParams - var _createParams = function(center, zoom, layers) { - // Call normal method - var params = oldCreateParams(center, zoom, layers); - // Make specific params - params.checked_categories = settings.checked_categories; - params.display_submited = settings.display_submited; - if (settings.current_feature) - params.current_feature = settings.current_feature.pk; - if (settings.routing_speed) - params.routing_speed = settings.routing_speed; - if (settings.routing_transport) - params.routing_transport = settings.routing_transport; - if (settings.routing_start){ - lonlat = settings.routing_start.lonlat.clone().transform( - EPSG_PROJECTION, EPSG_DISPLAY_PROJECTION); - params.routing_start_lon = lonlat.lon; - params.routing_start_lat = lonlat.lat; - } - if (settings.routing_end){ - lonlat = settings.routing_end.lonlat.clone().transform( - EPSG_PROJECTION, EPSG_DISPLAY_PROJECTION); - params.routing_end_lon = lonlat.lon; - params.routing_end_lat = lonlat.lat; - } - if (settings.routing_steps){ - var steps = []; - for (var i = 0; i < settings.routing_steps.length; i++){ - lonlat = settings.routing_steps[i].lonlat.clone( - ).transform(EPSG_PROJECTION, - EPSG_DISPLAY_PROJECTION); - steps.push([lonlat.lon, lonlat.lat]); - } - params.routing_steps = steps; - } - return params; - } - // Force new createParams method - settings.permalink.createParams = _createParams; - settings.map.addControl(settings.permalink); - // update with the translated permalink label - if(settings.permalink_label && settings.permalink.div - && settings.permalink.div.childNodes.length > 0){ - settings.permalink.div.childNodes[0].textContent = settings.permalink_label; - } - } - */ /* OL3-deprecated if (settings.map_layers.length > 1){ settings.map.addControl(new OpenLayers.Control.LayerSwitcher( @@ -732,10 +655,14 @@ function transformCoordToLonLat(coord) { /* register reload on move once the map is loaded */ settings._map_loaded = false; settings._cache_boundingbox = false; + settings._reload_on_move = function(){}; settings.map.once("postcompose", function(){ if (settings.reload_on_move){ methods.register_reload_on_move(); } + + settings.map.on('moveend', methods._move_end); + settings._map_loaded = true; if (settings._load_geoobjects_requested){ methods.loadGeoObjects(); @@ -817,6 +744,73 @@ function transformCoordToLonLat(coord) { } } }, + _move_end: function(e){ + settings._reload_on_move(e); + console.log(methods._get_permalink()); + }, + _get_permalink: function(e){ + var view = settings.map.getView(); + var center = ol.proj.transform( + view.getCenter(), + EPSG_PROJECTION, + EPSG_DISPLAY_PROJECTION); + var layers = ''; + $.each(settings.map.getLayers().getArray(), function(i, l){ + var idx = l.getProperties()['base-layer-idx']; + if (typeof idx != 'undefined' && l.getVisible()){ + if (layers != '') layers += ':'; + layers += idx; + } + }); + + var current_feature = ''; + if (settings.current_feature) + current_feature = settings.current_feature.getId(); + var routing_speed = ''; + if (settings.routing_speed) + routing_speed = settings.routing_speed; + var routing_transport = ''; + if (settings.routing_transport) + routing_transport = settings.routing_transport; + var routing_start = ''; + if (settings.routing_start){ + var geom = ol.proj.transform( + settings.routing_start.getGeometry().getCoordinates(), + EPSG_PROJECTION, + EPSG_DISPLAY_PROJECTION); + routing_start = geom[0].toFixed(5) + ':' + geom[1].toFixed(5); + } + var routing_end = ''; + if (settings.routing_end){ + var geom = ol.proj.transform( + settings.routing_end.getGeometry().getCoordinates(), + EPSG_PROJECTION, + EPSG_DISPLAY_PROJECTION); + routing_end = geom[0].toFixed(5) + ':' + geom[1].toFixed(5); + } + var steps = ''; + if (settings.routing_steps){ + for (var i = 0; i < settings.routing_steps.length; i++){ + var geom = ol.proj.transform( + settings.routing_steps[i].getGeometry().getCoordinates(), + EPSG_PROJECTION, + EPSG_DISPLAY_PROJECTION); + if (i > 0) steps += ';'; + steps += geom[0].toFixed(5) + ':' + geom[1].toFixed(5); + } + } + return view.getZoom() + ';' + + center[0].toFixed(5) + ':' + + center[1].toFixed(5) + ';' + + layers + ';' + + settings.checked_categories.join('-')+ ';' + + current_feature + ';' + + routing_speed + ';' + + routing_transport + ';' + + routing_start + ';' + + routing_end + ';' + + steps; + }, _register_popuphovering: function(){ $(document).on({ mouseenter: function(evt) { @@ -839,7 +833,7 @@ function transformCoordToLonLat(coord) { } }, register_reload_on_move: function(){ - var reload_on_move = function(evnt){ + settings._reload_on_move = function(evnt){ settings._revision += 1; var map = settings.map; var current_extent = ol.proj.transformExtent( @@ -870,8 +864,7 @@ function transformCoordToLonLat(coord) { if(!init) methods.loadGeoObjects(); } }; - settings.map.on('moveend', reload_on_move); - reload_on_move(); + settings._reload_on_move(); }, deactivateEdition: function(){ settings.edition = false; |