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

Function msSOSAddPropertyNode

mapogcsos.c:278–365  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

276}
277
278void msSOSAddPropertyNode(xmlNsPtr psNsSwe, xmlNsPtr psNsXLink, xmlNodePtr psParent, layerObj *lp, xmlNsPtr psNsGml, char *pszCompositePhenomenonId)
279{
280 const char *pszValue = NULL;
281 char *pszTmpVal = NULL, *pszFullName = NULL;
282 xmlNodePtr psCompNode, psNode;
283 int i, j=0;
284 char szTmp[256];
285 const char *pszComponentBase = "urn:ogc:def:property:";
286
287 if (psParent && lp)
288 {
289 psNode = xmlNewChild(psParent, NULL, BAD_CAST "observedProperty", NULL);
290 psCompNode = xmlNewChild(psNode, psNsSwe, BAD_CAST "CompositePhenomenon", NULL);
291 pszValue = msOWSLookupMetadata(&(lp->metadata), "S",
292 "observedproperty_id");
293 pszTmpVal = msStrdup(pszValue);
294
295 if (pszCompositePhenomenonId != NULL) { /* unique value needs to be constructed */
296 pszTmpVal = msStringConcatenate(pszTmpVal, "_");
297 pszTmpVal = msStringConcatenate(pszTmpVal, pszCompositePhenomenonId);
298 }
299
300 if (pszTmpVal)/*should always be true */ {
301 xmlNewNsProp(psCompNode, psNsGml, BAD_CAST "id", BAD_CAST pszTmpVal);
302 msFree(pszTmpVal);
303 }
304
305 pszValue = msOWSLookupMetadata(&(lp->metadata), "S",
306 "observedproperty_name");
307 if (pszValue)
308 psNode = xmlNewChild(psCompNode, psNsGml,
309 BAD_CAST "name", BAD_CAST pszValue);
310
311 /* add components */
312
313 /*assuming that the layer is opened and msLayerGetItems called*/
314 for(i=0; i<lp->numitems; i++)
315 {
316 pszValue = msOWSLookupMetadata(&(lp->metadata), "S", "observedproperty_authority");
317
318 if (pszValue)
319 pszTmpVal = msStrdup(pszValue);
320 else
321 pszTmpVal = msStrdup("OGC-SWE");
322
323 pszFullName = msStrdup(pszComponentBase);
324
325 pszFullName = msStringConcatenate(pszFullName, pszTmpVal);
326
327 free(pszTmpVal);
328
329 pszFullName = msStringConcatenate(pszFullName, ":");
330
331 pszValue = msOWSLookupMetadata(&(lp->metadata), "S", "observedproperty_version");
332
333 if (pszValue)
334 pszTmpVal = msStrdup(pszValue);
335 else

Callers 3

msSOSAddMemberNodeFunction · 0.85
msSOSGetCapabilitiesFunction · 0.85

Calls 5

msOWSLookupMetadataFunction · 0.85
msStrdupFunction · 0.85
msStringConcatenateFunction · 0.85
msFreeFunction · 0.85
msIntToStringFunction · 0.85

Tested by

no test coverage detected