From b4c2ab8d3deb27cab1815d29dd56ca173d8d19f7 Mon Sep 17 00:00:00 2001 From: Xandros Date: Fri, 20 Nov 2015 12:52:21 +0100 Subject: [PATCH] Added additional WCS informations to publish GeoTIFF --- .../rest/GeoServerRESTPublisher.java | 7 ++++ .../encoder/coverage/GSCoverageEncoder.java | 36 ++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java index f31c4fd..f27ec26 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java @@ -1551,7 +1551,14 @@ public class GeoServerRESTPublisher { coverageEncoder.setName(coverageName); coverageEncoder.setTitle(coverageName); coverageEncoder.setSRS(srs); + coverageEncoder.setNativeFormat("GeoTIFF"); + coverageEncoder.addSupportedFormats("GEOTIFF"); + coverageEncoder.addKeyword("geoTiff"); + coverageEncoder.addKeyword("WCS"); + coverageEncoder.setNativeCRS(srs); coverageEncoder.setProjectionPolicy(policy); + coverageEncoder.setRequestSRS(srs); + coverageEncoder.setResponseSRS(srs); if (bbox != null && bbox.length == 4) { coverageEncoder.setLatLonBoundingBox(bbox[0], bbox[1], bbox[2], bbox[3], DEFAULT_CRS); } diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java index f07f5bf..fa69317 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java @@ -28,6 +28,8 @@ package it.geosolutions.geoserver.rest.encoder.coverage; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; +import org.jdom.Element; + /** * Creates an XML @@ -38,8 +40,17 @@ import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; */ public class GSCoverageEncoder extends GSResourceEncoder { + final private static String NATIVE_FORMAT="nativeFormat"; + final private static String SUPPORTED_FORMATS="supportedFormats"; + + final private static String REQUEST_SRS="requestSRS"; + final private static String RESPONSE_SRS="responseSRS"; + + final private Element supportedFormatsListEncoder = new Element(SUPPORTED_FORMATS); + public GSCoverageEncoder() { - super("coverage"); + super("coverage"); + addContent(supportedFormatsListEncoder); } /** @@ -53,4 +64,27 @@ public class GSCoverageEncoder extends GSResourceEncoder { public void setMetadata(String key, GSDimensionInfoEncoder dimensionInfo) { super.setMetadata(key, dimensionInfo); } + + public void setNativeFormat(String format) { + set(NATIVE_FORMAT, format); + } + + public void addSupportedFormats(String format) { + final Element el = new Element("string"); + el.setText(format); + supportedFormatsListEncoder.addContent(el); + } + + public void setRequestSRS(String srs) { + final Element el = new Element("string"); + el.setText(srs); + set(REQUEST_SRS, el); + } + + public void setResponseSRS(String srs) { + final Element el = new Element("string"); + el.setText(srs); + set(RESPONSE_SRS, el); + } + }