From 2ba6472e1067be80bbc9ad7153ac14e6096d398f Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Wed, 11 Nov 2020 17:58:36 +0100 Subject: [PATCH] trying to center map on WMS Layer --- .../client/gis/LightOpenLayerOSM.java | 17 ++++++++++++- .../client/ui/map/MapView.java | 25 +++++++++++++------ 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LightOpenLayerOSM.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LightOpenLayerOSM.java index 015bb67..e06c394 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LightOpenLayerOSM.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LightOpenLayerOSM.java @@ -7,6 +7,7 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery.TYPE; import com.google.gwt.core.client.GWT; +import ol.Collection; import ol.Coordinate; import ol.Feature; import ol.Map; @@ -20,6 +21,7 @@ import ol.event.EventListener; import ol.geom.Point; import ol.interaction.KeyboardPan; import ol.interaction.KeyboardZoom; +import ol.layer.Base; import ol.layer.Image; import ol.layer.LayerOptions; import ol.layer.Tile; @@ -189,9 +191,22 @@ import ol.style.TextOptions; ol.layer.Image wmsLayer = new ol.layer.Image(layerOptions); //visibleLayerItems map.addLayer(wmsLayer); - + return wmsLayer; } + + + /** + * Gets the first layer. + * + * @return the first layer + */ + public Image getFirstLayer() { + if(map.getLayers()!=null) { + return (Image) map.getLayers().getArray()[0]; + } + return null; + } /** diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.java index 51cb24d..b902b9c 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.java @@ -115,14 +115,23 @@ import ol.layer.Image; @Override public void execute() { - Image layer = olsm.addWMSLayer(mapServerHost, layerName); - Extent ext = layer.getExtent(); - GWT.log("WMS layer extent: "+ext); - if(ext!=null) { - ExtentWrapped ew = new ExtentWrapped(ext.getLowerLeftX(), ext.getLowerLeftY(), ext.getUpperRightX(), ext.getUpperRightY()); - Coordinate center = ew.getCenter(); - olsm.getMap().getView().setCenter(center); - } + olsm.addWMSLayer(mapServerHost, layerName); + + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + + @Override + public void execute() { + Extent ext = olsm.getFirstLayer().getExtent(); + GWT.log("WMS layer extent: "+ext); +// if(ext!=null) { +// ExtentWrapped ew = new ExtentWrapped(ext.getLowerLeftX(), ext.getLowerLeftY(), ext.getUpperRightX(), ext.getUpperRightY()); +// Coordinate center = ew.getCenter(); +// olsm.getMap().getView().setCenter(center); +// } + } + + }); + } });