diff --git a/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js b/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js index 2a5fe743b519e0186dae873e6317327fee403212..593b84d22c30b1a15dcd6b4229e6a21921dc1e94 100644 --- a/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js +++ b/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js @@ -158,11 +158,21 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController = function ($scope, this['layerstree_collapsed'] = oVmap['properties']['vmap']['layerstree_collapsed']; } + console.log("oUrlParams: ", oUrlParams); + + var oPositionOptions = {}; if (goog.isDefAndNotNull(oUrlParams['extent'])){ - var aExtent = decodeURI(oUrlParams['extent']).split("|"); + oPositionOptions['extent'] = decodeURI(oUrlParams['extent']).split("|"); + } + if (goog.isDefAndNotNull(oUrlParams['lon']) && + goog.isDefAndNotNull(oUrlParams['lat']) && + goog.isDefAndNotNull(oUrlParams['zoom'])){ + oPositionOptions['lon'] = decodeURI(oUrlParams['lon']); + oPositionOptions['lat'] = decodeURI(oUrlParams['lat']); + oPositionOptions['zoom'] = decodeURI(oUrlParams['zoom']); } - this.loadTree(aExtent); + this.loadTree(oPositionOptions); // Événements sur les couches var keepLoadedTiles = true; @@ -389,10 +399,11 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.reloadTre /** * Load layers from the tree - * @param {array|undefined} aExtent exent to fit on + * @param {object|undefined} oPositionOptions + * @param {array|undefined} oPositionOptions.extent exent to fit on * @returns {undefined} */ -nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree = function (aExtent) { +nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree = function (oPositionOptions) { oVmap.log('nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree'); if (this['map'].getLayers().getArray().length > 0) @@ -452,9 +463,22 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.loadTree this.addLayer(olLayers[i]); } - // Va à l'étendue fournie - if (goog.isDefAndNotNull(aExtent)) { - this['map'].getView().fit(aExtent, { + // Va à la position fournie + if (goog.isDefAndNotNull(oPositionOptions['lon']) && + goog.isDefAndNotNull(oPositionOptions['lat']) && + goog.isDefAndNotNull(oPositionOptions['zoom'])){ + + // Projette les coordonnées + var coordinates = [parseFloat(oPositionOptions['lon']), parseFloat(oPositionOptions['lat'])]; + var projection = 'EPSG:4326'; + var currentProjeciton = this['map'].getView().getProjection(); + var projectedCoordinates = ol.proj.transform(coordinates, projection, currentProjeciton); + + this['map'].getView().setCenter(projectedCoordinates); + this['map'].getView().setZoom(oPositionOptions['zoom']); + } + if (goog.isDefAndNotNull(oPositionOptions['extent'])) { + this['map'].getView().fit(oPositionOptions['extent'], { nearest : true }); }