X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.geo%2Fsrc%2Forg%2Fargeo%2Fapp%2Fgeo%2Fux%2FOpenLayersMapPart.java;h=a856bccd188fd1b9ed8d4fe5893aee5a6cf6e53f;hb=2e08c3d9f69332161101e1bdda35054ae953748f;hp=c66ed3a03164760ec6aa61db61273b68d677e48a;hpb=b384a9cbe93b83b3aa94fe46cf2ff0a929f0332c;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java b/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java index c66ed3a..a856bcc 100644 --- a/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java +++ b/org.argeo.app.geo/src/org/argeo/app/geo/ux/OpenLayersMapPart.java @@ -1,14 +1,21 @@ package org.argeo.app.geo.ux; +import java.util.Map; + import org.argeo.app.ol.AbstractOlObject; import org.argeo.app.ol.Layer; import org.argeo.app.ol.OlMap; import org.argeo.app.ol.TileLayer; import org.argeo.app.ol.VectorLayer; import org.argeo.app.ux.js.JsClient; +import org.locationtech.jts.geom.Envelope; +/** + * A wrapper around an OpenLayers map, adding specific features, such as SLD + * styling. + */ public class OpenLayersMapPart extends AbstractGeoJsObject { - private String mapPartName; + private final String mapPartName; public OpenLayersMapPart(JsClient jsClient, String mapPartName) { super(mapPartName); @@ -24,17 +31,25 @@ public class OpenLayersMapPart extends AbstractGeoJsObject { executeMethod(getMethodName(), JsClient.escapeQuotes(xml)); } - public void applyStyle(String layerName, String styledLayerName) { - executeMethod(getMethodName(), layerName, styledLayerName); + public void setCenter(Double lat, Double lon) { + executeMethod(getMethodName(), lat, lon); + } + + public void fit(double[] extent, Map options) { + executeMethod(getMethodName(), extent, options); + } + + public void fit(Envelope extent, Map options) { + fit(new double[] { extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY() }, options); } - public void applyBboxStrategy(String layerName) { - executeMethod(getMethodName(), layerName); + public void applyStyle(String layerName, String styledLayerName) { + executeMethod(getMethodName(), layerName, styledLayerName); } public Layer getLayer(String name) { // TODO deal with not found - String reference = "getLayerByName('" + name + "')"; + String reference = getReference() + ".getLayerByName('" + name + "')"; if (getJsClient().isInstanceOf(reference, AbstractOlObject.getJsClassName(VectorLayer.class))) { return new VectorLayer(getJsClient(), reference); } else if (getJsClient().isInstanceOf(reference, AbstractOlObject.getJsClassName(TileLayer.class))) { @@ -43,4 +58,9 @@ public class OpenLayersMapPart extends AbstractGeoJsObject { return new Layer(getJsClient(), reference); } } + + public String getMapPartName() { + return mapPartName; + } + }