ingo@797: package de.intevation.flys.client.client.ui.map; ingo@797: ingo@823: import org.gwtopenmaps.openlayers.client.Bounds; ingo@797: import org.gwtopenmaps.openlayers.client.Map; ingo@797: import org.gwtopenmaps.openlayers.client.MapOptions; ingo@797: import org.gwtopenmaps.openlayers.client.MapWidget; ingo@833: import org.gwtopenmaps.openlayers.client.feature.VectorFeature; ingo@833: import org.gwtopenmaps.openlayers.client.format.GeoJSON; ingo@800: import org.gwtopenmaps.openlayers.client.layer.Vector; ingo@823: import org.gwtopenmaps.openlayers.client.layer.VectorOptions; ingo@797: import org.gwtopenmaps.openlayers.client.util.JObjectArray; ingo@797: import org.gwtopenmaps.openlayers.client.util.JSObject; ingo@797: ingo@797: ingo@797: public class FloodMap { ingo@797: ingo@800: public static final String LAYER_BARRIERS = "vector_layer_barriers"; ingo@800: ingo@797: protected MapWidget mapWidget; ingo@797: protected Map map; ingo@800: protected Vector barrierLayer; ingo@823: protected String srid; ingo@823: protected Bounds maxExtent; ingo@797: ingo@797: ingo@823: public FloodMap(String srid, Bounds maxExtent) { ingo@823: this.srid = srid; ingo@823: this.maxExtent = maxExtent; ingo@823: ingo@797: MapOptions opts = new MapOptions(); ingo@797: opts.setControls(new JObjectArray(new JSObject[] {})); ingo@797: opts.setNumZoomLevels(16); ingo@797: opts.setProjection(getRiverProjection()); ingo@823: opts.setMaxExtent(maxExtent); ingo@823: opts.setMaxResolution(500); // TODO DO THIS ON THE FLY ingo@797: ingo@797: mapWidget = new MapWidget("510px", "635px", opts); ingo@797: map = mapWidget.getMap(); ingo@806: ingo@806: getBarrierLayer(); ingo@797: } ingo@797: ingo@797: ingo@797: public MapWidget getMapWidget() { ingo@797: return mapWidget; ingo@797: } ingo@797: ingo@797: ingo@797: public Map getMap() { ingo@797: return map; ingo@797: } ingo@797: ingo@797: ingo@797: public String getRiverProjection() { ingo@823: return "EPSG:" + srid; ingo@797: } ingo@797: ingo@797: ingo@800: public Vector getBarrierLayer() { ingo@800: if (barrierLayer == null) { ingo@823: VectorOptions opts = new VectorOptions(); ingo@823: opts.setProjection(getRiverProjection()); ingo@823: opts.setMaxExtent(maxExtent); ingo@823: ingo@823: barrierLayer = new Vector(LAYER_BARRIERS, opts); ingo@806: barrierLayer.setIsBaseLayer(true); ingo@823: ingo@800: map.addLayer(barrierLayer); ingo@800: } ingo@800: ingo@800: return barrierLayer; ingo@800: } ingo@800: ingo@800: ingo@833: public String getFeaturesAsGeoJSON() { ingo@833: VectorFeature[] features = barrierLayer.getFeatures(); ingo@833: ingo@833: if (features == null || features.length == 0) { ingo@833: return null; ingo@833: } ingo@833: ingo@833: return new GeoJSON().write(features); ingo@833: } ingo@833: ingo@833: ingo@797: public void setSize(String width, String height) { ingo@797: mapWidget.setWidth(width); ingo@797: mapWidget.setHeight(height); ingo@797: } ingo@797: } ingo@799: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :