Skip to content

Commit

Permalink
Implement WCS20 Extensions (#4898)
Browse files Browse the repository at this point in the history
- 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 Apr 2, 2014
1 parent 75a5408 commit d246a0b
Show file tree
Hide file tree
Showing 4 changed files with 998 additions and 36 deletions.
2 changes: 2 additions & 0 deletions HISTORY.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
15 changes: 10 additions & 5 deletions mapwcs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 */
Expand All @@ -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;

Expand Down Expand Up @@ -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. */
Expand Down
Loading

0 comments on commit d246a0b

Please sign in to comment.