MCPcopy Create free account
hub / github.com/MapServer/MapServer / msWCSSetDefaultBandsRangeSetInfo

Function msWCSSetDefaultBandsRangeSetInfo

mapwcs.c:278–330  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

276/************************************************************************/
277
278void msWCSSetDefaultBandsRangeSetInfo( wcsParamsObj *params,
279 coverageMetadataObj *cm,
280 layerObj *lp )
281{
282
283 /* This function will provide default rangeset information for the "special" */
284 /* "bands" rangeset if it appears in the axes list but has no specifics provided */
285 /* in the metadata. */
286
287 const char *value;
288 char *bandlist;
289 size_t bufferSize = 0;
290 int i;
291
292 /* Does this item exist in the axes list? */
293
294 value = msOWSLookupMetadata(&(lp->metadata), "CO", "rangeset_axes");
295 if( value == NULL )
296 return;
297
298 value = strstr(value,"bands");
299 if( value == NULL || (value[5] != '\0' && value[5] != ' ') )
300 return;
301
302 /* Are there any w*s_bands_ metadata already? If so, skip out. */
303 if( msOWSLookupMetadata(&(lp->metadata), "CO", "bands_description") != NULL
304 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_name") != NULL
305 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_label") != NULL
306 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_values") != NULL
307 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_values_semantic") != NULL
308 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_values_type") != NULL
309 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_rangeitem") != NULL
310 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_semantic") != NULL
311 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_refsys") != NULL
312 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_refsyslabel") != NULL
313 || msOWSLookupMetadata(&(lp->metadata), "CO", "bands_interval") != NULL )
314 return;
315
316 /* OK, we have decided to fill in the information. */
317
318 msInsertHashTable( &(lp->metadata), "wcs_bands_name", "bands" );
319 msInsertHashTable( &(lp->metadata), "wcs_bands_label", "Bands/Channels/Samples" );
320 msInsertHashTable( &(lp->metadata), "wcs_bands_rangeitem", "_bands" ); /* ? */
321
322 bufferSize = cm->bandcount*30+30;
323 bandlist = (char *) msSmallMalloc(bufferSize);
324 strcpy( bandlist, "1" );
325 for( i = 1; i < cm->bandcount; i++ )
326 snprintf( bandlist+strlen(bandlist), bufferSize-strlen(bandlist), ",%d", i+1 );
327
328 msInsertHashTable( &(lp->metadata), "wcs_bands_values", bandlist );
329 free( bandlist );
330}
331
332/************************************************************************/
333/* msWCSParseRequest() */

Calls 3

msOWSLookupMetadataFunction · 0.85
msInsertHashTableFunction · 0.85
msSmallMallocFunction · 0.85

Tested by

no test coverage detected