summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/static/chimere/css/styles.css6
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js161
2 files changed, 81 insertions, 86 deletions
diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css
index cdcf437..230f9e1 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 269ba69..6fd0e36 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;