MCPcopy Index your code
hub / github.com/MapServer/MapServer / msWCSGetCoverage20_FinalizeParamsObj

Function msWCSGetCoverage20_FinalizeParamsObj

mapwcs20.c:3376–3474  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3374/************************************************************************/
3375
3376static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params)
3377{
3378 int returnValue;
3379 static const int numAxis = 2;
3380 char *validXAxisNames[] = {"x", "xaxis", "x-axis", "x_axis", "long", "long_axis", "long-axis", "lon", "lon_axis", "lon-axis", NULL};
3381 char *validYAxisNames[] = {"y", "yaxis", "y-axis", "y_axis", "lat", "lat_axis", "lat-axis", NULL};
3382 char ***validAxisNames;
3383 char *crs = NULL;
3384 wcs20AxisObjPtr *axes;
3385
3386 axes = (wcs20AxisObjPtr*)msSmallMalloc(sizeof(wcs20AxisObjPtr) * numAxis);
3387
3388 validAxisNames = msSmallCalloc(sizeof(char**), numAxis);
3389 validAxisNames[0] = validXAxisNames;
3390 validAxisNames[1] = validYAxisNames;
3391
3392 returnValue = msWCSValidateAndFindAxes20(params, validAxisNames, numAxis, axes);
3393 msFree(validAxisNames);
3394 if(returnValue != MS_SUCCESS)
3395 {
3396 msFree(axes);
3397 return MS_FAILURE;
3398 }
3399
3400 if (axes[0] != NULL)
3401 {
3402 if(axes[0]->subset != NULL)
3403 {
3404 msDebug("Subset for X-axis found: %s\n", axes[0]->subset->axis);
3405 if (!axes[0]->subset->min.unbounded)
3406 params->bbox.minx = axes[0]->subset->min.scalar;
3407 if (!axes[0]->subset->max.unbounded)
3408 params->bbox.maxx = axes[0]->subset->max.scalar;
3409 crs = axes[0]->subset->crs;
3410 }
3411 params->width = axes[0]->size;
3412 params->resolutionX = axes[0]->resolution;
3413 if(axes[0]->resolutionUOM != NULL)
3414 {
3415 params->resolutionUnits = msStrdup(axes[0]->resolutionUOM);
3416 }
3417 }
3418
3419 if (axes[1] != NULL)
3420 {
3421 if(axes[1]->subset != NULL)
3422 {
3423 msDebug("Subset for Y-axis found: %s\n", axes[1]->subset->axis);
3424 if (!axes[1]->subset->min.unbounded)
3425 params->bbox.miny = axes[1]->subset->min.scalar;
3426 if (!axes[1]->subset->max.unbounded)
3427 params->bbox.maxy = axes[1]->subset->max.scalar;
3428 if(crs != NULL && axes[0] != NULL && axes[0]->subset!= NULL)
3429 {
3430 if(!EQUAL(crs, axes[1]->subset->crs))
3431 {
3432 msSetError(MS_WCSERR, "CRS for axis %s and axis %s are not the same.",
3433 "msWCSCreateBoundingBox20()", axes[0]->name, axes[1]->name);

Callers 1

msWCSGetCoverage20Function · 0.85

Calls 7

msSmallMallocFunction · 0.85
msSmallCallocFunction · 0.85
msFreeFunction · 0.85
msDebugFunction · 0.85
msStrdupFunction · 0.85
msSetErrorFunction · 0.85

Tested by

no test coverage detected