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

Function msSLDGetGraphicSLD

mapogcsld.c:3324–3677  ·  view source on GitHub ↗

/ msSLDGetGraphicSLD */ / Get an SLD for a style containg a symbol (Mark or external). */ /

Source from the content-addressed store, hash-verified

3322/* Get an SLD for a style containg a symbol (Mark or external). */
3323/************************************************************************/
3324char *msSLDGetGraphicSLD(styleObj *psStyle, layerObj *psLayer,
3325 int bNeedMarkSybol, int nVersion)
3326{
3327#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR) || defined (USE_WCS_SVR) || defined(USE_SOS_SVR)
3328
3329 char *pszSLD = NULL;
3330 int nSymbol = -1;
3331 symbolObj *psSymbol = NULL;
3332 char szTmp[512];
3333 char *pszURL = NULL;
3334 char szFormat[4];
3335 int i = 0, nLength = 0;
3336 int bFillColor = 0, bColorAvailable=0;
3337 int bGenerateDefaultSymbol = 0;
3338 char *pszSymbolName= NULL;
3339 char sNameSpace[10];
3340 char sCssParam[30];
3341
3342 sCssParam[0] = '\0';
3343 if (nVersion > OWS_1_0_0)
3344 strcpy(sCssParam, "se:SvgParameter");
3345 else
3346 strcpy(sCssParam, "CssParameter");
3347
3348 sNameSpace[0] = '\0';
3349 if (nVersion > OWS_1_0_0)
3350 strcpy(sNameSpace, "se:");
3351
3352 if (psStyle && psLayer && psLayer->map)
3353 {
3354 nSymbol = -1;
3355 if (psStyle->symbol > 0)
3356 nSymbol = psStyle->symbol;
3357 else if (psStyle->symbolname)
3358 nSymbol = msGetSymbolIndex(&psLayer->map->symbolset,
3359 psStyle->symbolname, MS_FALSE);
3360
3361 bGenerateDefaultSymbol = 0;
3362
3363 if (bNeedMarkSybol &&
3364 (nSymbol <=0 || nSymbol >= psLayer->map->symbolset.numsymbols))
3365 bGenerateDefaultSymbol = 1;
3366
3367 if (nSymbol > 0 && nSymbol < psLayer->map->symbolset.numsymbols)
3368 {
3369 psSymbol = psLayer->map->symbolset.symbol[nSymbol];
3370 if (psSymbol->type == MS_SYMBOL_VECTOR ||
3371 psSymbol->type == MS_SYMBOL_ELLIPSE)
3372 {
3373 /* Mark symbol */
3374 if (psSymbol->name)
3375
3376 {
3377 if (strcasecmp(psSymbol->name, "square") == 0 ||
3378 strcasecmp(psSymbol->name, "circle") == 0 ||
3379 strcasecmp(psSymbol->name, "triangle") == 0 ||
3380 strcasecmp(psSymbol->name, "star") == 0 ||
3381 strcasecmp(psSymbol->name, "cross") == 0 ||

Callers 3

msSLDGenerateLineSLDFunction · 0.85
msSLDGeneratePolygonSLDFunction · 0.85
msSLDGeneratePointSLDFunction · 0.85

Calls 6

msGetSymbolIndexFunction · 0.85
strcasecmpFunction · 0.85
msStrdupFunction · 0.85
strncasecmpFunction · 0.85
msStringConcatenateFunction · 0.85
msLookupHashTableFunction · 0.85

Tested by

no test coverage detected