in progress view details
This commit is contained in:
parent
cee9c97c28
commit
ab8119be2e
|
@ -32,6 +32,7 @@
|
|||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
||||
|
|
|
@ -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<MapBrowserEvent>() {
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -10,4 +10,7 @@ public interface Images extends ClientBundle {
|
|||
|
||||
@Source("loading.gif")
|
||||
ImageResource loading();
|
||||
|
||||
@Source("map-marker-icon.png")
|
||||
ImageResource mapMarkerIcon();
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
|
@ -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<Widget, MapView> {
|
||||
}
|
||||
|
||||
@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);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
||||
<ui:style>
|
||||
|
||||
</ui:style>
|
||||
<g:HTMLPanel ui:field="theMap">
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
|
@ -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<UploadedImageDV> immagini = concessioneDV.getImmaginiRappresentative();
|
||||
if(immagini!=null && immagini.size()>0) {
|
||||
|
|
|
@ -21,23 +21,27 @@
|
|||
<b:Heading size="2" ui:field="titolo"></b:Heading>
|
||||
<b:Paragraph ui:field="introduzione"></b:Paragraph>
|
||||
</b:Hero>
|
||||
<g:HTMLPanel ui:field="concessioniPanel"
|
||||
addStyleNames="{style.margin-left-10}">
|
||||
<g:HTMLPanel ui:field="recordPanel" visible="false">
|
||||
<g:HorizontalPanel>
|
||||
<g:HTMLPanel ui:field="mapViewPanel">
|
||||
</g:HTMLPanel>
|
||||
<b:Row>
|
||||
<b:Column size="2">
|
||||
<g:Label>Autori</g:Label>
|
||||
</b:Column>
|
||||
<b:Column size="8" ui:field="autori"></b:Column>
|
||||
</b:Row>
|
||||
<b:Row>
|
||||
<b:Column size="2">
|
||||
<g:Label>Contributore</g:Label>
|
||||
</b:Column>
|
||||
<b:Column size="8" ui:field="contributore"></b:Column>
|
||||
</b:Row>
|
||||
</g:HTMLPanel>
|
||||
<g:HTMLPanel ui:field="concessioniPanel"
|
||||
addStyleNames="{style.margin-left-10}">
|
||||
<g:HTMLPanel ui:field="recordPanel" visible="false">
|
||||
</g:HTMLPanel>
|
||||
<b:Row>
|
||||
<b:Column size="2">
|
||||
<g:Label>Autori</g:Label>
|
||||
</b:Column>
|
||||
<b:Column size="8" ui:field="autori"></b:Column>
|
||||
</b:Row>
|
||||
<b:Row>
|
||||
<b:Column size="2">
|
||||
<g:Label>Contributore</g:Label>
|
||||
</b:Column>
|
||||
<b:Column size="8" ui:field="contributore"></b:Column>
|
||||
</b:Row>
|
||||
</g:HTMLPanel>
|
||||
</g:HorizontalPanel>
|
||||
<g:HTMLPanel ui:field="relazioneScavoPanel"
|
||||
addStyleNames="{style.margin-left-10}" visible="false">
|
||||
<b:PageHeader addStyleNames="{style.font-size-h1-22}">Relazione Scavo</b:PageHeader>
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
|
||||
<ui:style>
|
||||
.margin-left-10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel ui:field="recordDVPanel">
|
||||
<b:Row>
|
||||
|
|
Loading…
Reference in New Issue