From cb310c5940b69abcacc803111a71296dae468c3d Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Wed, 16 Jan 2019 12:36:22 +0100 Subject: [PATCH] =?UTF-8?q?Utiliser=20log/lat=20dans=20les=20param=C3=A8tr?= =?UTF-8?q?es=20de=20l'URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/vmap/mapmanager/layerstree.js | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) 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 2a5fe743..593b84d2 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 }); } -- GitLab