trying to center map on WMS Layer

This commit is contained in:
Francesco Mangiacrapa 2020-11-11 17:58:36 +01:00
parent fe9afe0bc2
commit 2ba6472e10
2 changed files with 33 additions and 9 deletions

View File

@ -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;
}
/**

View File

@ -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);
// }
}
});
}
});