Permalink
Browse files

Implement WCS20 Extensions (#4898)

- Add parsing capabilities for WCS RangeSubset extension.
- Implement WCS geotiff extension.
- Properly implement CRS extension.
- Fix Profile URIs for WCS 2.0
- Fix subsettingcrs KVP parameter name.
- Proper implementation of scale extension.
- Fix index for rangesubset intervals. Also allowing integers as band identifiers.
- Fix geotiff:predictor parameter. Should now be one of 'None', 'Horizontal' or 'FloatingPoint' as required in the spec.
  • Loading branch information...
constantinius authored and tbonfort committed Mar 25, 2014
1 parent 75a5408 commit d246a0b41c2f94674859e9332c22341e9581b1b0
Showing with 998 additions and 36 deletions.
  1. +2 −0 HISTORY.TXT
  2. +10 −5 mapwcs.h
  3. +985 −30 mapwcs20.c
  4. +1 −1 msautotest
View
@@ -15,6 +15,8 @@ For a complete change history, please see the Git log comments.
7.0 release (TBD)
-----------------
+- Implement WCS20 Extensions (#4898)
+
- Require validation of ExternalGraphic OnlineResource (#4883)
- Require validation on the CGI queryfile parameter. (#4874)
View
@@ -157,6 +157,7 @@ typedef struct {
char *name; /* name of the axis */
int size; /* pixelsize of the axis */
double resolution; /* resolution of the axis */
+ double scale; /* scale of the axis */
char *resolutionUOM; /* resolution units of measure */
wcs20SubsetObjPtr subset;
} wcs20AxisObj;
@@ -173,6 +174,9 @@ typedef struct {
long width, height; /* image dimensions */
double resolutionX; /* image resolution in X axis */
double resolutionY; /* image resolution in Y axis */
+ double scale; /* Overall scale */
+ double scaleX; /* X-Axis specific scale */
+ double scaleY; /* Y-Axis specific scale */
char *resolutionUnits; /* Units of Measure for resolution */
char *format; /* requested output format */
int multipart; /* flag for multipart GML+image */
@@ -182,7 +186,8 @@ typedef struct {
rectObj bbox; /* determined Bounding Box */
int numaxes; /* number of axes */
wcs20AxisObjPtr *axes; /* list of axes, NULL if none*/
- char **range_subset;
+ char **range_subset; /* list of bands selected */
+ char **format_options; /* list of format specific options, NULL terminated */
} wcs20ParamsObj;
typedef wcs20ParamsObj * wcs20ParamsObjPtr;
@@ -229,10 +234,10 @@ typedef wcs20coverageMetadataObj * wcs20coverageMetadataObjPtr;
#define MS_WCS_20_PROFILE_GML_MULTIPART "http://www.opengis.net/spec/GMLCOV/1.0/conf/multipart"
#define MS_WCS_20_PROFILE_GML_SPECIAL "http://www.opengis.net/spec/GMLCOV/1.0/conf/special-format"
#define MS_WCS_20_PROFILE_GML_GEOTIFF "http://www.opengis.net/spec/GMLCOV_geotiff-coverages/1.0/conf/geotiff-coverage"
-#define MS_WCS_20_PROFILE_GEOTIFF "http://www.opengis.net/spec/WCS_geotiff-coverages/1.0/conf/geotiff-coverage"
-#define MS_WCS_20_PROFILE_CRS "http://www.opengis.net/spec/WCS_service-model_crs-predefined/1.0/conf/crs-predefined"
-#define MS_WCS_20_PROFILE_SCALING "http://www.opengis.net/spec/WCS_service-model_scaling+interpolation/1.0/conf/scaling+interpolation"
-#define MS_WCS_20_PROFILE_RANGESUBSET "http://www.opengis.net/spec/WCS_service-model_band-subsetting/1.0/conf/band-subsetting"
+#define MS_WCS_20_PROFILE_CRS "http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs"
+#define MS_WCS_20_PROFILE_SCALING "http://www.opengis.net/spec/WCS_service-extension_scaling/1.0/conf/scaling"
+#define MS_WCS_20_PROFILE_RANGESUBSET "http://www.opengis.net/spec/WCS_service-extension_range-subsetting/1.0/conf/record-subsetting"
+#define MS_WCS_20_PROFILE_INTERPOLATION "http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation"
/* -------------------------------------------------------------------- */
/* WCS 2.0 function prototypes. */
Oops, something went wrong.

0 comments on commit d246a0b

Please sign in to comment.