Integrated Pianta Fine Scavo
This commit is contained in:
parent
2ba6472e10
commit
7a36ef5ed5
|
@ -1,119 +0,0 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.client.gis;
|
|
||||||
|
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
|
||||||
|
|
||||||
import com.google.gwt.dom.client.Document;
|
|
||||||
import com.google.gwt.dom.client.LinkElement;
|
|
||||||
import com.google.gwt.dom.client.Style.Display;
|
|
||||||
import com.google.gwt.dom.client.Style.Overflow;
|
|
||||||
import com.google.gwt.dom.client.Style.Position;
|
|
||||||
import com.google.gwt.dom.client.Style.Unit;
|
|
||||||
|
|
||||||
import ol.Collection;
|
|
||||||
import ol.Coordinate;
|
|
||||||
import ol.OLFactory;
|
|
||||||
import ol.OLUtil;
|
|
||||||
import ol.control.Control;
|
|
||||||
import ol.control.ControlOptions;
|
|
||||||
import ol.control.FullScreen;
|
|
||||||
import ol.control.MousePosition;
|
|
||||||
import ol.control.ZoomSlider;
|
|
||||||
import ol.geom.Polygon;
|
|
||||||
import ol.layer.Base;
|
|
||||||
import ol.layer.LayerOptions;
|
|
||||||
import ol.layer.Tile;
|
|
||||||
import ol.source.Osm;
|
|
||||||
import ol.source.XyzOptions;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Tino Desjardins
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public final class DemoUtils {
|
|
||||||
|
|
||||||
private DemoUtils() {
|
|
||||||
throw new AssertionError();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates some default controls and adds it to the collection.
|
|
||||||
*
|
|
||||||
* @param controls collection with controls
|
|
||||||
*/
|
|
||||||
public static void addDefaultControls(final Collection<Control> controls) {
|
|
||||||
|
|
||||||
controls.push(new FullScreen());
|
|
||||||
controls.push(new ZoomSlider());
|
|
||||||
MousePosition mousePosition = new MousePosition();
|
|
||||||
mousePosition.setCoordinateFormat(Coordinate.createStringXY(5));
|
|
||||||
controls.push(mousePosition);
|
|
||||||
//controls.push(new ZoomToExtent());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a MapBox logo.
|
|
||||||
*
|
|
||||||
* @return MapBox logo
|
|
||||||
*/
|
|
||||||
public static Control createMapboxLogo() {
|
|
||||||
|
|
||||||
ControlOptions controlOptions = new ControlOptions();
|
|
||||||
|
|
||||||
LinkElement mapboxLogo = Document.get().createLinkElement();
|
|
||||||
mapboxLogo.setHref("https://mapbox.com/about/maps");
|
|
||||||
mapboxLogo.setTarget("_blank");
|
|
||||||
|
|
||||||
mapboxLogo.getStyle().setPosition(Position.ABSOLUTE);
|
|
||||||
mapboxLogo.getStyle().setLeft(2, Unit.PX);
|
|
||||||
mapboxLogo.getStyle().setBottom(5, Unit.PX);
|
|
||||||
mapboxLogo.getStyle().setWidth(126, Unit.PX);
|
|
||||||
mapboxLogo.getStyle().setHeight(40, Unit.PX);
|
|
||||||
mapboxLogo.getStyle().setDisplay(Display.BLOCK);
|
|
||||||
mapboxLogo.getStyle().setOverflow(Overflow.HIDDEN);
|
|
||||||
|
|
||||||
mapboxLogo.getStyle().setBackgroundImage("url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAAoCAMAAAAFWtJHAAAAwFBMVEUAAAAAAAAAAABtbW0AAAAAAAAAAAAAAAAAAAAAAAClpaUAAADp6ekAAAD5+fna2toAAAAMDAzv7+/Nzc0AAAA2Njb8/Pz9/f3T09MAAAAAAAD7+/sAAAArKyuxsbH39/fs7OwbGxuIiIjz8/N8fHyenp7u7u74+PgAAAC8vLxWVlbx8fF1dXXl5eVcXFyUlJTQ0NDFxcVCQkLAwMC4uLj19fXo6OjW1tarq6ve3t77+/vi4uL6+vrKysrNzc3///8w7gSSAAAAP3RSTlMAOQNdPSYBPywKexLLGPCxNEHXnzFL+v2nGwf1IEiE6dBFad9jd9PuLo1V2mDDV3Cjl06SiuXIq4C3973ym6BQMVUPAAAEXElEQVR4Ae2WCVP6OBiH05L0l1IqrVbkKHJ54I0oHn+PfP9vtUle0z/YdhbH2XVnd58ZnRJIeHiPJOx//mH4vQSAN+8FjAhFxgHIaPvJeZ99hxwEElon5iAQbj85Y98g8ODwjEOMAvGFyeE3FEKgodTBqj0BJGN9DhyNd5Ta3ean9QEopfaA+LsKhnEKRExqg4FSP6Og7oEkAjBWnxSCgBX4xF+kcLoPcOBQrSv0e5kH7s1j37jECQieCTPiFGxL5VHw2zQWCeeJiPt6kjRQw0XSkIdVChf67xGa4alSnZlT6HEQ8CK9ANbhvXUF9xlDkBfTuHDWScgC9+z5FQpPI12TlwC6+sV7ixR8CUMKiwjm2GQeOQWHMGuHGdbnObJAwCEqFJpNU5H6uaPUaEIKiQfg+PHk1+u4OwW9PlWW2ctbA4BHCtp+cNK+H8Jos4gDmC5ar4Nx9waaG/2B13NgDqS7+vm2RgEtEws82P+kwIHhs/pgkQKcFIhfd7CogtGNjYMHTLpurD0ERbYFw4JaD3GlQuNAL/JEsSAF4HqlCnaHACk4WhOn4OgCkMD5hSpYNYDJTD8Y46n+jsE1kPhVCuR6QBXhFK7MUOu9O6b1SWF3b+/9ZVWMGOlu93E8UDaAhgc7bfH+0DHqKXCkHzoNDFfU+zxiVQrUC9QXTuHYtKpN59OA3IxCG4b7jh6ZFuVockaNTW09mkJzOaPU49a6mE9cAchZpQJNpUWcwgV9r6FJswsFKrITp2B5pMBMdnS0z2HZNy2+BNKxSZxZfglkrFYBJxQnpzA5sN/HheR2aFQoZBLAi149dQoyAYYjW0hHlHguBAdMcR0DuDZ5omevX6+AI8qcU7ikKT3GBHCnXwydgmCC0tRwCnGQ2Wp6Be71yNIWfQSkOl9vAI1SBCNWrwC01RROgX7BuT2HI4r7tFAw086p/NwZEdOEa7R1uAFuNmQPuKAEAjYNQ0CyeoUEWHYBnpQVQgpvc0Ph+gsKlAnKg1+vEHsw5LKciLKCAJobiWBzYFGbCKpHqkZZrxBFHEASyFI59vJPCskcwNVGOWZAOqsrR+pKbaNeAMT1CixMEtlnsqopNxUMzVJT3tY35aXZm6a6Y9QhwMN6BUJWbE1lhbMO1WehkO7poO0sK7em9MJGxp1XSbC1gtugzzSLQmGsX7VntJGSwsPZ2d2z3bIPKzdoOp3Wzqt8G4XyMVUoFIxLx1S7+piaHtCvR3FeRVsq0GFdp9C5TbGpcNqsPqyHKxcfd14h21KhuLKUFU4f3osrC7F6uV3WXFnadL7wyAPeKDXw2RoJCO5GY4DouYvb/gepVXheLoewzPseQG9N/vzilrMIjoStE3++zvle4eSurw7XEe76ynI4aq+v7lEyt1x5awiFlFLQbHKIpabnM3eJLym4Szzzc/du7SU+zOXv9UNpECH7IoH/gecURPlN9vdQpeD47yhIFNX0U0QgvID9nENm+yxk/xb+AGAjNfRZuk9qAAAAAElFTkSuQmCC)");
|
|
||||||
|
|
||||||
controlOptions.setElement(mapboxLogo);
|
|
||||||
|
|
||||||
return new Control(controlOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a test polygon geometry (triangle).
|
|
||||||
*
|
|
||||||
* @return test polygon geometry (EPSG:3857)
|
|
||||||
*/
|
|
||||||
public static Polygon createTestPolygon() {
|
|
||||||
|
|
||||||
Coordinate[][] coordinates = new Coordinate[1][4];
|
|
||||||
|
|
||||||
Coordinate point1 = new Coordinate(13.36, 52.53);
|
|
||||||
Coordinate point2 = new Coordinate(13.36, 52.51);
|
|
||||||
Coordinate point3 = new Coordinate(13.37, 52.52);
|
|
||||||
Coordinate point4 = new Coordinate(13.36, 52.53);
|
|
||||||
|
|
||||||
coordinates[0][0] = point1;
|
|
||||||
coordinates[0][1] = point2;
|
|
||||||
coordinates[0][2] = point3;
|
|
||||||
coordinates[0][3] = point4;
|
|
||||||
|
|
||||||
Coordinate[][] tranformedCoordinates = new Coordinate[coordinates.length][];
|
|
||||||
|
|
||||||
tranformedCoordinates[0] = OLUtil.transform(coordinates[0], GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
|
||||||
return OLFactory.createPolygon(tranformedCoordinates);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Base createOsmLayer() {
|
|
||||||
XyzOptions osmSourceOptions = OLFactory.createOptions();
|
|
||||||
|
|
||||||
Osm osmSource = new Osm(osmSourceOptions);
|
|
||||||
LayerOptions osmLayerOptions = OLFactory.createOptions();
|
|
||||||
osmLayerOptions.setSource(osmSource);
|
|
||||||
|
|
||||||
return new Tile(osmLayerOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -7,7 +7,6 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery.TYPE;
|
||||||
|
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
|
|
||||||
import ol.Collection;
|
|
||||||
import ol.Coordinate;
|
import ol.Coordinate;
|
||||||
import ol.Feature;
|
import ol.Feature;
|
||||||
import ol.Map;
|
import ol.Map;
|
||||||
|
@ -21,7 +20,6 @@ import ol.event.EventListener;
|
||||||
import ol.geom.Point;
|
import ol.geom.Point;
|
||||||
import ol.interaction.KeyboardPan;
|
import ol.interaction.KeyboardPan;
|
||||||
import ol.interaction.KeyboardZoom;
|
import ol.interaction.KeyboardZoom;
|
||||||
import ol.layer.Base;
|
|
||||||
import ol.layer.Image;
|
import ol.layer.Image;
|
||||||
import ol.layer.LayerOptions;
|
import ol.layer.LayerOptions;
|
||||||
import ol.layer.Tile;
|
import ol.layer.Tile;
|
||||||
|
@ -305,17 +303,5 @@ import ol.style.TextOptions;
|
||||||
return this.map.getView().calculateExtent(map.getSize());
|
return this.map.getView().calculateExtent(map.getSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Transform.
|
|
||||||
*
|
|
||||||
* @param centerCoordinate the center coordinate
|
|
||||||
* @param source the source
|
|
||||||
* @param target the target
|
|
||||||
* @return the coordinate
|
|
||||||
*/
|
|
||||||
public Coordinate transform (Coordinate centerCoordinate, String source, String target){
|
|
||||||
return Projection.transform(centerCoordinate, source, target);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
package org.gcube.portlets.user.geoportaldataviewer.client.gis;
|
||||||
|
|
||||||
|
import ol.Collection;
|
||||||
|
import ol.Coordinate;
|
||||||
|
import ol.control.Control;
|
||||||
|
import ol.control.FullScreen;
|
||||||
|
import ol.control.MousePosition;
|
||||||
|
import ol.control.ZoomSlider;
|
||||||
|
import ol.proj.Projection;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class MapUtils.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
*
|
||||||
|
* Nov 12, 2020
|
||||||
|
*/
|
||||||
|
public final class MapUtils {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates some default controls and adds it to the collection.
|
||||||
|
*
|
||||||
|
* @param controls collection with controls
|
||||||
|
*/
|
||||||
|
public static void addDefaultControls(final Collection<Control> controls) {
|
||||||
|
|
||||||
|
controls.push(new FullScreen());
|
||||||
|
controls.push(new ZoomSlider());
|
||||||
|
MousePosition mousePosition = new MousePosition();
|
||||||
|
mousePosition.setCoordinateFormat(Coordinate.createStringXY(5));
|
||||||
|
controls.push(mousePosition);
|
||||||
|
//controls.push(new ZoomToExtent());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transform coordiante.
|
||||||
|
*
|
||||||
|
* @param centerCoordinate the center coordinate
|
||||||
|
* @param source the source
|
||||||
|
* @param target the target
|
||||||
|
* @return the coordinate
|
||||||
|
*/
|
||||||
|
public static Coordinate transformCoordiante(Coordinate centerCoordinate, String source, String target) {
|
||||||
|
return Projection.transform(centerCoordinate, source, target);
|
||||||
|
}
|
||||||
|
}
|
|
@ -115,7 +115,7 @@ public class OpenLayerOSM {
|
||||||
|
|
||||||
//EPSG_4326_TO_ITALY
|
//EPSG_4326_TO_ITALY
|
||||||
Coordinate centerCoordinate = OLFactory.createCoordinate(12.45, 42.98);
|
Coordinate centerCoordinate = OLFactory.createCoordinate(12.45, 42.98);
|
||||||
Coordinate transformedCenterCoordinate = Projection.transform(centerCoordinate, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
Coordinate transformedCenterCoordinate = MapUtils.transformCoordiante(centerCoordinate, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||||
|
|
||||||
view.setCenter(transformedCenterCoordinate);
|
view.setCenter(transformedCenterCoordinate);
|
||||||
view.setZoom(5);
|
view.setZoom(5);
|
||||||
|
@ -132,7 +132,7 @@ public class OpenLayerOSM {
|
||||||
|
|
||||||
// add some controls
|
// add some controls
|
||||||
map.addControl(OLFactory.createScaleLine());
|
map.addControl(OLFactory.createScaleLine());
|
||||||
DemoUtils.addDefaultControls(map.getControls());
|
MapUtils.addDefaultControls(map.getControls());
|
||||||
|
|
||||||
Attribution attribution = new Attribution();
|
Attribution attribution = new Attribution();
|
||||||
attribution.setCollapsed(true);
|
attribution.setCollapsed(true);
|
||||||
|
@ -182,6 +182,8 @@ public class OpenLayerOSM {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void showPopup(String html, Coordinate coordinate) {
|
public void showPopup(String html, Coordinate coordinate) {
|
||||||
if(popupOverlay==null) {
|
if(popupOverlay==null) {
|
||||||
Element elPopup = DOM.getElementById("popup");
|
Element elPopup = DOM.getElementById("popup");
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.map;
|
package org.gcube.portlets.user.geoportaldataviewer.client.ui.map;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped;
|
import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.LightOpenLayerOSM;
|
import org.gcube.portlets.user.geoportaldataviewer.client.gis.LightOpenLayerOSM;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||||
|
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.core.client.Scheduler;
|
import com.google.gwt.core.client.Scheduler;
|
||||||
|
@ -15,8 +18,7 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
|
|
||||||
import ol.Coordinate;
|
import ol.Coordinate;
|
||||||
import ol.Extent;
|
import ol.OLFactory;
|
||||||
import ol.layer.Image;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class MapView.
|
* The Class MapView.
|
||||||
|
@ -46,26 +48,6 @@ import ol.layer.Image;
|
||||||
HorizontalPanel coordinatePanel;
|
HorizontalPanel coordinatePanel;
|
||||||
|
|
||||||
private LightOpenLayerOSM olsm;
|
private LightOpenLayerOSM olsm;
|
||||||
|
|
||||||
// public MapView(Double x, Double y, boolean showCoordinate) {
|
|
||||||
// initWidget(uiBinder.createAndBindUi(this));
|
|
||||||
// String theMapId = "map"+Random.nextInt();
|
|
||||||
// theMap.getElement().setId(theMapId);
|
|
||||||
// //theMap.setSize("300px", "300px");
|
|
||||||
//
|
|
||||||
// Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void execute() {
|
|
||||||
// olsm = new LightOpenLayerOSM(theMapId);
|
|
||||||
// if(x!=null && y!=null) {
|
|
||||||
// Coordinate point = new Coordinate(x, y);
|
|
||||||
// addPoint(point);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new map view.
|
* Instantiates a new map view.
|
||||||
|
@ -108,32 +90,39 @@ import ol.layer.Image;
|
||||||
* Adds the WMS layer.
|
* Adds the WMS layer.
|
||||||
*
|
*
|
||||||
* @param mapServerHost the map server host
|
* @param mapServerHost the map server host
|
||||||
* @param layerName the layer name
|
* @param layerName the layer name
|
||||||
|
* @param bbox the bbox
|
||||||
*/
|
*/
|
||||||
public void addWMSLayer(String mapServerHost, String layerName){
|
public void addWMSLayer(String mapServerHost, String layerName, BoundsMap bbox) {
|
||||||
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
olsm.addWMSLayer(mapServerHost, layerName);
|
olsm.addWMSLayer(mapServerHost, layerName);
|
||||||
|
|
||||||
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
|
||||||
|
|
||||||
@Override
|
if (bbox != null) {
|
||||||
public void execute() {
|
|
||||||
Extent ext = olsm.getFirstLayer().getExtent();
|
Coordinate lower = OLFactory.createCoordinate(bbox.getLowerLeftX(), bbox.getLowerLeftY());
|
||||||
GWT.log("WMS layer extent: "+ext);
|
Coordinate lowerCoord = MapUtils.transformCoordiante(lower, GeoportalDataViewerConstants.EPSG_4326,
|
||||||
// if(ext!=null) {
|
GeoportalDataViewerConstants.EPSG_3857);
|
||||||
// ExtentWrapped ew = new ExtentWrapped(ext.getLowerLeftX(), ext.getLowerLeftY(), ext.getUpperRightX(), ext.getUpperRightY());
|
|
||||||
// Coordinate center = ew.getCenter();
|
Coordinate upper = OLFactory.createCoordinate(bbox.getUpperRightX(), bbox.getUpperRightY());
|
||||||
// olsm.getMap().getView().setCenter(center);
|
Coordinate upperCoord = MapUtils.transformCoordiante(upper, GeoportalDataViewerConstants.EPSG_4326,
|
||||||
// }
|
GeoportalDataViewerConstants.EPSG_3857);
|
||||||
}
|
|
||||||
|
ExtentWrapped ew = new ExtentWrapped(lowerCoord.getX(), lowerCoord.getY(), upperCoord.getX(),
|
||||||
});
|
upperCoord.getY());
|
||||||
|
Coordinate center = ew.getCenter();
|
||||||
|
GWT.log("center: "+center);
|
||||||
|
Coordinate invertCoordinate = new Coordinate(center.getY(), center.getX());
|
||||||
|
// Size size = new Size(300, 300);
|
||||||
|
//olsm.getMap().getView().setCenter(invertCoordinate);
|
||||||
|
olsm.getMap().getView().fit(ew);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
||||||
<ui:style>
|
<ui:style>
|
||||||
.internalMap {
|
.internalMap {
|
||||||
width: 400px;
|
width: 300px;
|
||||||
height: 400px;
|
height: 300px;
|
||||||
}
|
}
|
||||||
</ui:style>
|
</ui:style>
|
||||||
<g:HTMLPanel>
|
<g:HTMLPanel>
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class LayerConcessioneView extends Composite {
|
||||||
MapView mapView = new MapView();
|
MapView mapView = new MapView();
|
||||||
mapViewPanel.add(mapView);
|
mapViewPanel.add(mapView);
|
||||||
String mapServerHost = layerDV.getWmsLink().contains("?")? layerDV.getWmsLink().substring(0,layerDV.getWmsLink().indexOf("?")):layerDV.getWmsLink();
|
String mapServerHost = layerDV.getWmsLink().contains("?")? layerDV.getWmsLink().substring(0,layerDV.getWmsLink().indexOf("?")):layerDV.getWmsLink();
|
||||||
mapView.addWMSLayer(mapServerHost, layerDV.getLayerName());
|
mapView.addWMSLayer(mapServerHost, layerDV.getLayerName(), layerDV.getBbox());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,18 @@
|
||||||
.important {
|
.important {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.style-layer {
|
||||||
|
display: inline-block;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 1px 3px rgba(0,0,0,0.055);
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
width: 673px;
|
||||||
|
}
|
||||||
</ui:style>
|
</ui:style>
|
||||||
<g:HTMLPanel>
|
<g:HTMLPanel addStyleNames="{style.style-layer}">
|
||||||
<g:HorizontalPanel>
|
<g:HorizontalPanel>
|
||||||
<g:HTMLPanel ui:field="layerConcessionePanel"></g:HTMLPanel>
|
<g:HTMLPanel ui:field="layerConcessionePanel"></g:HTMLPanel>
|
||||||
<g:HTMLPanel ui:field="mapViewPanel">
|
<g:HTMLPanel ui:field="mapViewPanel">
|
||||||
|
|
|
@ -12,6 +12,7 @@ import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerSer
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
|
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.WMSUrlValidator;
|
import org.gcube.portlets.user.geoportaldataviewer.server.gis.WMSUrlValidator;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
|
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.server.util.URLParserUtil;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaDataObject;
|
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaDataObject;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||||
|
@ -152,6 +153,33 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the parameters from URL.
|
||||||
|
*
|
||||||
|
* @param theURL the the URL
|
||||||
|
* @param parameters the parameters
|
||||||
|
* @return a map with couple (paramKey, paramValue)
|
||||||
|
*/
|
||||||
|
|
||||||
|
public Map<String, String> getParametersFromURL(String theURL, List<String> parameters) {
|
||||||
|
|
||||||
|
if (theURL == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (parameters == null || parameters.size() == 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
Map<String, String> hashParameters = new HashMap<String, String>(parameters.size());
|
||||||
|
for (String paramKey : parameters) {
|
||||||
|
String paramValue = URLParserUtil.extractValueOfParameterFromURL(paramKey, theURL);
|
||||||
|
hashParameters.put(paramKey, paramValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return hashParameters;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the my login.
|
* Gets the my login.
|
||||||
*
|
*
|
||||||
|
|
|
@ -12,6 +12,7 @@ import org.gcube.application.geoportal.model.concessioni.RelazioneScavo;
|
||||||
import org.gcube.application.geoportal.model.content.PersistedContent;
|
import org.gcube.application.geoportal.model.content.PersistedContent;
|
||||||
import org.gcube.application.geoportal.model.content.UploadedImage;
|
import org.gcube.application.geoportal.model.content.UploadedImage;
|
||||||
import org.gcube.application.geoportal.model.content.WorkspaceContent;
|
import org.gcube.application.geoportal.model.content.WorkspaceContent;
|
||||||
|
import org.gcube.application.geoportal.model.gis.BBOX;
|
||||||
|
|
||||||
public class TestModel {
|
public class TestModel {
|
||||||
|
|
||||||
|
@ -111,6 +112,8 @@ public class TestModel {
|
||||||
pianta.setLayerName("gna_conc_12:pos");
|
pianta.setLayerName("gna_conc_12:pos");
|
||||||
pianta.setWmsLink(
|
pianta.setWmsLink(
|
||||||
"https://geoserver1.dev.d4science.org/geoserver/gna_conc_12/wms?service=WMS&version=1.1.0&request=GetMap&layers=gna_conc_12:pos&styles=&bbox=8.62091913167495,40.62975046683799,8.621178639172953,40.630257904721645&width=392&height=768&srs=EPSG:4326&format=application/openlayers#toggle");
|
"https://geoserver1.dev.d4science.org/geoserver/gna_conc_12/wms?service=WMS&version=1.1.0&request=GetMap&layers=gna_conc_12:pos&styles=&bbox=8.62091913167495,40.62975046683799,8.621178639172953,40.630257904721645&width=392&height=768&srs=EPSG:4326&format=application/openlayers#toggle");
|
||||||
|
|
||||||
|
pianta.setBbox(new BBOX(40.630257904721645,8.621178639172953,40.62975046683799,8.62091913167495));
|
||||||
piante.add(pianta);
|
piante.add(pianta);
|
||||||
}
|
}
|
||||||
concessione.setPianteFineScavo(piante);
|
concessione.setPianteFineScavo(piante);
|
||||||
|
|
|
@ -3,20 +3,21 @@
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.server.gis;
|
package org.gcube.portlets.user.geoportaldataviewer.server.gis;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class GeoserverBaseUri.
|
* The Class WebMapServerHost.
|
||||||
*
|
*
|
||||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* Jan 28, 2016
|
*
|
||||||
|
* Nov 12, 2020
|
||||||
*/
|
*/
|
||||||
public class WebMapServerHost {
|
public class WebMapServerHost {
|
||||||
|
|
||||||
private String host = "";
|
private String host = "";
|
||||||
private String scope = "";
|
private String scope = "";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new geoserver base uri.
|
* Instantiates a new web map server host.
|
||||||
*/
|
*/
|
||||||
public WebMapServerHost() {
|
public WebMapServerHost() {
|
||||||
}
|
}
|
||||||
|
@ -34,6 +35,8 @@ public class WebMapServerHost {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Gets the host.
|
||||||
|
*
|
||||||
* @return the host
|
* @return the host
|
||||||
*/
|
*/
|
||||||
public String getHost() {
|
public String getHost() {
|
||||||
|
@ -43,6 +46,8 @@ public class WebMapServerHost {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Gets the scope.
|
||||||
|
*
|
||||||
* @return the scope
|
* @return the scope
|
||||||
*/
|
*/
|
||||||
public String getScope() {
|
public String getScope() {
|
||||||
|
@ -52,6 +57,8 @@ public class WebMapServerHost {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Sets the host.
|
||||||
|
*
|
||||||
* @param host the host to set
|
* @param host the host to set
|
||||||
*/
|
*/
|
||||||
public void setHost(String host) {
|
public void setHost(String host) {
|
||||||
|
@ -61,6 +68,8 @@ public class WebMapServerHost {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Sets the scope.
|
||||||
|
*
|
||||||
* @param scope the scope to set
|
* @param scope the scope to set
|
||||||
*/
|
*/
|
||||||
public void setScope(String scope) {
|
public void setScope(String scope) {
|
||||||
|
@ -68,6 +77,11 @@ public class WebMapServerHost {
|
||||||
this.scope = scope;
|
this.scope = scope;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To string.
|
||||||
|
*
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see java.lang.Object#toString()
|
* @see java.lang.Object#toString()
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,65 +1,48 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.server.util;
|
package org.gcube.portlets.user.geoportaldataviewer.server.util;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLDecoder;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class URLUtil.
|
* The Class URLUtil.
|
||||||
*
|
*
|
||||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
*
|
*
|
||||||
* Oct 29, 2020
|
* Oct 29, 2020
|
||||||
*/
|
*/
|
||||||
public class URLParserUtil {
|
public class URLParserUtil {
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value of parameter.
|
|
||||||
*
|
|
||||||
* @param paramName the param name
|
|
||||||
* @param url the url
|
|
||||||
* @return the value of parameter
|
|
||||||
*/
|
|
||||||
public static String getValueOfParameter(String paramName, String url) {
|
|
||||||
// logger.trace("finding: "+wmsParam +" into "+url);
|
|
||||||
int index = url.toLowerCase().indexOf(paramName.toLowerCase()+"="); //ADDING CHAR "=" IN TAIL TO BE SECURE IT IS A PARAMETER
|
|
||||||
// logger.trace("start index of "+wmsParam+ " is: "+index);
|
|
||||||
String value = "";
|
|
||||||
if(index > -1){
|
|
||||||
int start = index + paramName.length()+1; //add +1 for char '='
|
|
||||||
String sub = url.substring(start, url.length());
|
|
||||||
int indexOfSeparator = sub.indexOf("&");
|
|
||||||
int end = indexOfSeparator!=-1?indexOfSeparator:sub.length();
|
|
||||||
value = sub.substring(0, end);
|
|
||||||
}else
|
|
||||||
return null;
|
|
||||||
|
|
||||||
// logger.trace("return value: "+value);
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the parameter to query string.
|
* Adds the parameter to query string.
|
||||||
*
|
*
|
||||||
* @param key the key
|
* @param key the key
|
||||||
* @param value the value
|
* @param value the value
|
||||||
* @param prefixAmpersand the prefix ampersand
|
* @param prefixAmpersand the prefix ampersand
|
||||||
* @param suffixAmpersand the suffix ampersand
|
* @param suffixAmpersand the suffix ampersand
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
public static String addParameterToQueryString(String key, String value, boolean prefixAmpersand, boolean suffixAmpersand) {
|
public static String addParameterToQueryString(String key, String value, boolean prefixAmpersand,
|
||||||
|
boolean suffixAmpersand) {
|
||||||
|
|
||||||
String queryParameter = "";
|
String queryParameter = "";
|
||||||
|
|
||||||
if(prefixAmpersand)
|
if (prefixAmpersand)
|
||||||
queryParameter+="&";
|
queryParameter += "&";
|
||||||
|
|
||||||
queryParameter+=key+"="+value;
|
queryParameter += key + "=" + value;
|
||||||
|
|
||||||
if(suffixAmpersand)
|
if (suffixAmpersand)
|
||||||
queryParameter+="&";
|
queryParameter += "&";
|
||||||
|
|
||||||
return queryParameter;
|
return queryParameter;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract value of parameter from URL.
|
* Extract value of parameter from URL.
|
||||||
*
|
*
|
||||||
|
@ -68,7 +51,8 @@ public class URLParserUtil {
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
public static String extractValueOfParameterFromURL(String paramName, String url) {
|
public static String extractValueOfParameterFromURL(String paramName, String url) {
|
||||||
int index = url.toLowerCase().indexOf(paramName.toLowerCase() + "="); // ADDING CHAR "=" IN TAIL TO BE SURE THAT IT
|
int index = url.toLowerCase().indexOf(paramName.toLowerCase() + "="); // ADDING CHAR "=" IN TAIL TO BE SURE THAT
|
||||||
|
// IT
|
||||||
// IS A PARAMETER
|
// IS A PARAMETER
|
||||||
String value = "";
|
String value = "";
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
|
@ -84,5 +68,29 @@ public class URLParserUtil {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Split query.
|
||||||
|
*
|
||||||
|
* @param url the url
|
||||||
|
* @return the map
|
||||||
|
* @throws UnsupportedEncodingException the unsupported encoding exception
|
||||||
|
*/
|
||||||
|
public static Map<String, List<String>> splitQuery(URL url) throws UnsupportedEncodingException {
|
||||||
|
final Map<String, List<String>> query_pairs = new LinkedHashMap<String, List<String>>();
|
||||||
|
final String[] pairs = url.getQuery().split("&");
|
||||||
|
for (String pair : pairs) {
|
||||||
|
final int idx = pair.indexOf("=");
|
||||||
|
final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), "UTF-8") : pair;
|
||||||
|
if (!query_pairs.containsKey(key)) {
|
||||||
|
query_pairs.put(key, new LinkedList<String>());
|
||||||
|
}
|
||||||
|
final String value = idx > 0 && pair.length() > idx + 1
|
||||||
|
? URLDecoder.decode(pair.substring(idx + 1), "UTF-8")
|
||||||
|
: null;
|
||||||
|
query_pairs.get(key).add(value);
|
||||||
|
}
|
||||||
|
return query_pairs;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue