Added Layer offset manager
This commit is contained in:
parent
6197d40fae
commit
db9ff853bc
|
@ -0,0 +1,51 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.gis;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* The Class LayerOrder.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Nov 12, 2021
|
||||
*/
|
||||
public class LayerOrder {
|
||||
|
||||
/**
|
||||
* The Enum LAYER_TYPE.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Nov 12, 2021
|
||||
*/
|
||||
public static enum LAYER_TYPE {
|
||||
BASE_MAP, BASE_WMS, WMS_DETAIL, VECTOR
|
||||
}
|
||||
|
||||
public static final HashMap<LAYER_TYPE, Integer> LAYER_OFFSET = new HashMap<LAYER_TYPE, Integer>(5);
|
||||
|
||||
static {
|
||||
|
||||
LAYER_OFFSET.put(LAYER_TYPE.BASE_MAP, 0);
|
||||
LAYER_OFFSET.put(LAYER_TYPE.BASE_WMS, 70);
|
||||
LAYER_OFFSET.put(LAYER_TYPE.WMS_DETAIL, 140);
|
||||
LAYER_OFFSET.put(LAYER_TYPE.VECTOR, 210);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new layer order.
|
||||
*/
|
||||
public LayerOrder() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the offset.
|
||||
*
|
||||
* @param layerType the layer type
|
||||
* @return the offset
|
||||
*/
|
||||
public Integer getOffset(LAYER_TYPE layerType) {
|
||||
return LAYER_OFFSET.get(layerType);
|
||||
}
|
||||
|
||||
}
|
|
@ -141,7 +141,9 @@ public abstract class OpenLayerOSM {
|
|||
private LinkedHashMap<String, Image> wmsLayerMap;
|
||||
|
||||
private Layer baseLayerTile;
|
||||
|
||||
|
||||
private LayerOrder layerOrder = new LayerOrder();
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new open layer OSM.
|
||||
|
@ -219,7 +221,8 @@ public abstract class OpenLayerOSM {
|
|||
//osmSource.setAttributions(baseLayer.getAttribution());
|
||||
LayerOptions layerOptions = OLFactory.createOptions();
|
||||
layerOptions.setSource(osmSource);
|
||||
layerOptions.setZIndex(0);
|
||||
int zIndex = layerOrder.getOffset(LayerOrder.LAYER_TYPE.BASE_MAP)+1;
|
||||
layerOptions.setZIndex(zIndex);
|
||||
baseLayerTile = new Tile(layerOptions);
|
||||
|
||||
break;
|
||||
|
@ -234,11 +237,13 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
LayerOptions layerOptions2 = OLFactory.createOptions();
|
||||
layerOptions2.setSource(xyz);
|
||||
layerOptions2.setZIndex(0);
|
||||
zIndex = layerOrder.getOffset(LayerOrder.LAYER_TYPE.BASE_MAP)+1;
|
||||
layerOptions2.setZIndex(zIndex);
|
||||
baseLayerTile = new Tile(layerOptions2);
|
||||
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// map == null at init time
|
||||
|
@ -405,6 +410,8 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
LayerOptions layerOptions = OLFactory.createOptions();
|
||||
layerOptions.setSource(imageWMSSource);
|
||||
|
||||
|
||||
|
||||
// Settings MIN and MAX Resolution
|
||||
if (layerItem.getMinResolution() != null) {
|
||||
|
@ -415,7 +422,8 @@ public abstract class OpenLayerOSM {
|
|||
}
|
||||
|
||||
Image wmsLayer = new Image(layerOptions);
|
||||
|
||||
int zIndex = layerOrder.getOffset(LayerOrder.LAYER_TYPE.BASE_WMS)+wmsLayerMap.size()+1;
|
||||
wmsLayer.setZIndex(zIndex);
|
||||
// visibleLayerItems
|
||||
|
||||
map.addLayer(wmsLayer);
|
||||
|
@ -457,6 +465,9 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
LayerOptions layerOptions = OLFactory.createOptions();
|
||||
layerOptions.setSource(imageWMSSource);
|
||||
|
||||
|
||||
|
||||
// Settings MIN and MAX Resolution
|
||||
if (layerItem.getMinResolution() != null) {
|
||||
layerOptions.setMinResolution(layerItem.getMinResolution());
|
||||
|
@ -466,7 +477,8 @@ public abstract class OpenLayerOSM {
|
|||
}
|
||||
|
||||
Image wmsLayer = new Image(layerOptions);
|
||||
wmsLayer.setZIndex(wmsDetailsLayerMap.size() + 1);
|
||||
int zIndex = layerOrder.getOffset(LayerOrder.LAYER_TYPE.WMS_DETAIL)+wmsDetailsLayerMap.size() + 1;
|
||||
wmsLayer.setZIndex(zIndex);
|
||||
map.addLayer(wmsLayer);
|
||||
wmsDetailsLayerMap.put(key, wmsLayer);
|
||||
|
||||
|
@ -523,9 +535,12 @@ public abstract class OpenLayerOSM {
|
|||
Vector vectorSource = OLFactory.createVectorSource();
|
||||
vectorSource.addFeature(feature);
|
||||
vectorLayerOptions.setSource(vectorSource);
|
||||
|
||||
|
||||
ol.layer.Vector vector = OLFactory.createVector(vectorLayerOptions);
|
||||
|
||||
|
||||
int zIndex = layerOrder.getOffset(LayerOrder.LAYER_TYPE.VECTOR)+1;
|
||||
vector.setZIndex(zIndex);
|
||||
|
||||
map.addLayer(vector);
|
||||
}
|
||||
|
||||
|
@ -875,9 +890,11 @@ public abstract class OpenLayerOSM {
|
|||
Image layer1 = wmsDetailsLayerMap.get(layerSource);
|
||||
Image layer2 = wmsDetailsLayerMap.get(layerTarget);
|
||||
|
||||
int zIndexS = swapLSource.getPosition() + 1;
|
||||
int zIndexT = swapLTarget.getPosition() + 1;
|
||||
int zIndexOffset = layerOrder.getOffset(LayerOrder.LAYER_TYPE.WMS_DETAIL);
|
||||
int zIndexS = swapLSource.getPosition() + zIndexOffset + 1;
|
||||
int zIndexT = swapLTarget.getPosition() + zIndexOffset + 1;
|
||||
GWT.log("new zindex source: " + zIndexS + ", new zTarget: " + zIndexT);
|
||||
|
||||
layer1.setZIndex(zIndexT);
|
||||
layer2.setZIndex(zIndexS);
|
||||
|
||||
|
|
Loading…
Reference in New Issue