diff --git a/.classpath b/.classpath
index 348ca0d..c5c4bd3 100644
--- a/.classpath
+++ b/.classpath
@@ -32,6 +32,7 @@
+
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
new file mode 100644
index 0000000..c6cb3f0
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LightOpenLayerOSM.java
@@ -0,0 +1,233 @@
+package org.gcube.portlets.user.geoportaldataviewer.client.gis;
+
+import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
+import org.gcube.portlets.user.geoportaldataviewer.client.resources.Images;
+import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery;
+import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery.TYPE;
+
+import ol.Coordinate;
+import ol.Feature;
+import ol.Map;
+import ol.MapBrowserEvent;
+import ol.MapOptions;
+import ol.OLFactory;
+import ol.View;
+import ol.ViewOptions;
+import ol.control.Attribution;
+import ol.event.EventListener;
+import ol.geom.Point;
+import ol.interaction.KeyboardPan;
+import ol.interaction.KeyboardZoom;
+import ol.layer.LayerOptions;
+import ol.layer.Tile;
+import ol.layer.VectorLayerOptions;
+import ol.proj.Projection;
+import ol.proj.ProjectionOptions;
+import ol.source.Osm;
+import ol.source.XyzOptions;
+import ol.style.FillOptions;
+import ol.style.Icon;
+import ol.style.IconOptions;
+import ol.style.Image;
+import ol.style.Style;
+
+ public class LightOpenLayerOSM {
+
+ /** The map. */
+ private Map map;
+
+ /** The view. */
+ private View view;
+
+ /** The view options. */
+ private ViewOptions viewOptions = OLFactory.createOptions();
+
+ /** The projection options. */
+ private ProjectionOptions projectionOptions = OLFactory.createOptions();
+
+
+ private boolean isQueryPointActive;
+
+ private ol.layer.Vector geometryLayer;
+
+ private String markerURL = Images.ICONS.mapMarkerIcon().getURL();
+
+
+ /**
+ * Instantiates a new open layer OSM.
+ *
+ * @param divTargetId the div target id
+ * @param eventBus the event bus
+ */
+ /* (non-Javadoc)
+ * @see de.desjardins.ol3.demo.client.example.Example#show()
+ */
+ public LightOpenLayerOSM(String divTargetId) {
+
+ // create a OSM-layer
+ XyzOptions osmSourceOptions = OLFactory.createOptions();
+
+ Osm osmSource = new Osm(osmSourceOptions);
+ LayerOptions osmLayerOptions = OLFactory.createOptions();
+ osmLayerOptions.setSource(osmSource);
+
+ Tile osmLayer = new Tile(osmLayerOptions);
+ // create a projection
+ projectionOptions.setCode(GeoportalDataViewerConstants.EPSG_3857);
+ projectionOptions.setUnits("m");
+
+ Projection projection = new Projection(projectionOptions);
+ viewOptions.setProjection(projection);
+ viewOptions.setMaxZoom(19);
+ //viewOptions.setExtent(new Extent(-180, -90, 180, 90));
+
+ // create a view
+ view = new View(viewOptions);
+
+ //EPSG_4326_TO_ITALY
+ Coordinate centerCoordinate = OLFactory.createCoordinate(12.45, 42.98);
+ Coordinate transformedCenterCoordinate = Projection.transform(centerCoordinate, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
+
+ view.setCenter(transformedCenterCoordinate);
+ view.setZoom(5);
+
+ // create the map
+ MapOptions mapOptions = OLFactory.createOptions();
+ mapOptions.setTarget(divTargetId);
+ mapOptions.setView(view);
+
+ map = new Map(mapOptions);
+
+ map.addLayer(osmLayer);
+ //map.addLayer(tileDebugLayer);
+
+ // add some controls
+// map.addControl(OLFactory.createScaleLine());
+// DemoUtils.addDefaultControls(map.getControls());
+
+ Attribution attribution = new Attribution();
+ attribution.setCollapsed(true);
+
+ map.addClickListener(new EventListener() {
+
+ @Override
+ public void onEvent(MapBrowserEvent event) {
+ // TODO Auto-generated method stub
+ Coordinate coordinate = event.getCoordinate();
+ if(isQueryPointActive) {
+
+ double lon = coordinate.getX();
+ double lat = coordinate.getY();
+
+ int w = (int) map.getSize().getWidth();
+ int h = (int) map.getSize().getHeight();
+ // handler.clickOnMap(x, y, w, h);
+
+ // ratio - mapPixelWeight : bboxWeight = 10px : geoRectangleWidth
+ // where 10px is the pixel diameter dimension of the clicked point
+ double bboxWidth = Math.abs(getExtent().getLowerLeftX() - getExtent().getUpperRightX());
+ double geoWidth = (bboxWidth / w) * (20 / 2);
+ double x1 = Math.min(lon+geoWidth, lon-geoWidth);
+ double x2 = Math.max(lon+geoWidth, lon-geoWidth);
+ double y1 = Math.min(lat+geoWidth, lat-geoWidth);
+ double y2 = Math.max(lat+geoWidth, lat-geoWidth);
+ //GWT.log("("+x1+","+y1+")("+x2+","+y2+")");
+
+// Point pt = new Point(coordinate);
+// ol.Extent extent = pt.getExtent();
+// //new ClickDataInfo(x1, y1, x2, y2)
+// SelectDataInfo selectDataInfo
+ //selectBox(new GeoQuery(x1, y1, x2, y2, GeoQuery.TYPE.POINT));
+ GeoQuery select = new GeoQuery(x1, y1, x2, y2, TYPE.POINT);
+
+ }
+ }
+ });
+
+ map.addControl(attribution);
+
+ // add some interactions
+ map.addInteraction(new KeyboardPan());
+ map.addInteraction(new KeyboardZoom());
+
+ }
+
+ public void addPoint(Coordinate coordinate) {
+
+ if(geometryLayer!=null) {
+ map.removeLayer(geometryLayer);
+ }else {
+
+ }
+ Style style = new Style();
+ IconOptions iconOptions = new IconOptions();
+ iconOptions.setSrc(markerURL);
+ Icon icon = new Icon(iconOptions);
+ style.setImage(icon);
+ FillOptions fillOptions = new FillOptions();
+ //fillOptions.setColor(new Color(red, green, blue, alpha));
+ //style.setFill(new Fill(fillOptions));
+// style.setFillColor("#00FF00");
+// style.setGraphicName("circle");
+// style.setPointRadius(10);
+ Point thePoint = new Point(coordinate);
+ Feature vf = new Feature(thePoint);
+ vf.setStyle(style);
+ ol.source.Vector vector = new ol.source.Vector();
+ vector.addFeature(vf);
+ VectorLayerOptions vectorLayerOptions = new VectorLayerOptions();
+ vectorLayerOptions.setSource(vector);
+ geometryLayer = new ol.layer.Vector(vectorLayerOptions);
+ map.addLayer(geometryLayer);
+ }
+
+ public Map getMap() {
+ return map;
+ }
+
+ /**
+ * Gets the projection code.
+ *
+ * @return the projection code
+ */
+ public String getProjectionCode() {
+ return map.getView().getProjection().getCode();
+ }
+
+
+ /**
+ * Gets the current zoom level.
+ *
+ * @return the current zoom level
+ */
+ public double getCurrentZoomLevel() {
+ return map.getView().getZoom();
+ }
+
+
+
+ /**
+ * Gets the bbox.
+ *
+ * @return the bbox
+ */
+ public ol.Extent getBBOX() {
+ return getExtent();
+ }
+
+ /**
+ * Gets the extent.
+ *
+ * @return the extent
+ */
+ public ol.Extent getExtent() {
+ return this.map.getView().calculateExtent(map.getSize());
+ }
+
+ public Coordinate transform (Coordinate centerCoordinate, String source, String target){
+ return Projection.transform(centerCoordinate, source, target);
+ }
+
+
+}
+
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/Images.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/Images.java
index f7f80fb..a91cac2 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/Images.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/Images.java
@@ -10,4 +10,7 @@ public interface Images extends ClientBundle {
@Source("loading.gif")
ImageResource loading();
+
+ @Source("map-marker-icon.png")
+ ImageResource mapMarkerIcon();
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/map-marker-icon.png b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/map-marker-icon.png
new file mode 100644
index 0000000..86eb5a6
Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/resources/map-marker-icon.png differ
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
new file mode 100644
index 0000000..560fdc3
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.java
@@ -0,0 +1,56 @@
+package org.gcube.portlets.user.geoportaldataviewer.client.ui.map;
+
+import org.gcube.portlets.user.geoportaldataviewer.client.gis.LightOpenLayerOSM;
+import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerOSM;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.Random;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+import ol.Coordinate;
+
+ public class MapView extends Composite{
+
+ private static MapViewUiBinder uiBinder = GWT.create(MapViewUiBinder.class);
+
+ interface MapViewUiBinder extends UiBinder {
+ }
+
+ @UiField
+ HTMLPanel theMap;
+
+ private LightOpenLayerOSM olsm;
+
+ public MapView(Double x, Double y) {
+ 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);
+ }
+
+ }
+ });
+
+ }
+
+ private void addPoint(Coordinate coordinate){
+ olsm.addPoint(coordinate);
+ olsm.getMap().getView().setCenter(coordinate);
+
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.ui.xml
new file mode 100644
index 0000000..c9caf4d
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/map/MapView.ui.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.java
index 599ce09..c86c8f8 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.java
@@ -3,6 +3,7 @@ package org.gcube.portlets.user.geoportaldataviewer.client.ui.products;
import java.util.List;
import org.gcube.portlets.user.geoportaldataviewer.client.ui.images.ImageView;
+import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.MapView;
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
@@ -21,6 +22,8 @@ import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
+import ol.Coordinate;
+
public class ConcessioneView extends Composite {
@@ -50,6 +53,9 @@ public class ConcessioneView extends Composite {
@UiField
HTMLPanel pageViewDetails;
+ @UiField
+ HTMLPanel mapViewPanel;
+
private ConcessioneDV concessioneDV;
private Thumbnails thumbNails = new Thumbnails();
@@ -75,8 +81,16 @@ public class ConcessioneView extends Composite {
addLabel(contributore, concessioneDV.getContributore());
addImages();
+
+ addMap();
}
+ private void addMap() {
+ MapView mapView = new MapView(concessioneDV.getCentroidLong(), concessioneDV.getCentroidLat());
+ mapViewPanel.add(mapView);
+ }
+
+
private void addImages() {
List immagini = concessioneDV.getImmaginiRappresentative();
if(immagini!=null && immagini.size()>0) {
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.ui.xml
index 9f311a4..6fa2845 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/ConcessioneView.ui.xml
@@ -21,23 +21,27 @@
-
-
+
+
-
-
- Autori
-
-
-
-
-
- Contributore
-
-
-
-
+
+
+
+
+
+ Autori
+
+
+
+
+
+ Contributore
+
+
+
+
+
Relazione Scavo
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/RecordView.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/RecordView.ui.xml
index 406a0a6..52707c0 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/RecordView.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/RecordView.ui.xml
@@ -3,9 +3,6 @@
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
- .margin-left-10 {
- margin-left: 10px;
- }