| 3374 | /************************************************************************/ |
| 3375 | |
| 3376 | static 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); |
no test coverage detected