/ msSLDGenerateSLDLayer */ / Genrate an SLD XML string based on the layer's classes. */ /
| 4247 | /* Genrate an SLD XML string based on the layer's classes. */ |
| 4248 | /************************************************************************/ |
| 4249 | char *msSLDGenerateSLDLayer(layerObj *psLayer, int nVersion) |
| 4250 | { |
| 4251 | #if defined(USE_WMS_SVR) || defined (USE_WFS_SVR) || defined (USE_WCS_SVR) || defined(USE_SOS_SVR) |
| 4252 | |
| 4253 | #ifdef USE_OGR |
| 4254 | char szTmp[100]; |
| 4255 | char *pszTmpName = NULL; |
| 4256 | int i, j; |
| 4257 | styleObj *psStyle = NULL; |
| 4258 | char *pszFilter = NULL; |
| 4259 | char *pszFinalSLD = NULL; |
| 4260 | char *pszSLD = NULL; |
| 4261 | const char *pszTmp = NULL; |
| 4262 | double dfMinScale =-1, dfMaxScale = -1; |
| 4263 | const char *pszWfsFilter= NULL; |
| 4264 | char *pszEncoded = NULL, *pszWfsFilterEncoded=NULL; |
| 4265 | |
| 4266 | |
| 4267 | if (psLayer && |
| 4268 | (psLayer->status == MS_ON || psLayer->status == MS_DEFAULT) && |
| 4269 | (psLayer->type == MS_LAYER_POINT || |
| 4270 | psLayer->type == MS_LAYER_LINE || |
| 4271 | psLayer->type == MS_LAYER_POLYGON || |
| 4272 | psLayer->type == MS_LAYER_ANNOTATION)) |
| 4273 | { |
| 4274 | snprintf(szTmp, sizeof(szTmp), "%s\n", "<NamedLayer>"); |
| 4275 | pszFinalSLD = msStringConcatenate(pszFinalSLD, szTmp); |
| 4276 | |
| 4277 | pszTmp = msOWSLookupMetadata(&(psLayer->metadata), "MO", "name"); |
| 4278 | if (pszTmp) |
| 4279 | { |
| 4280 | pszEncoded = msEncodeHTMLEntities(pszTmp); |
| 4281 | if (nVersion > OWS_1_0_0) |
| 4282 | snprintf(szTmp, sizeof(szTmp), "<se:Name>%s</se:Name>\n", pszEncoded); |
| 4283 | else |
| 4284 | snprintf(szTmp, sizeof(szTmp), "<Name>%s</Name>\n", pszEncoded); |
| 4285 | pszFinalSLD = msStringConcatenate(pszFinalSLD, szTmp); |
| 4286 | msFree(pszEncoded); |
| 4287 | } |
| 4288 | else if (psLayer->name) |
| 4289 | { |
| 4290 | pszEncoded = msEncodeHTMLEntities(psLayer->name); |
| 4291 | pszTmpName = (char *)malloc(sizeof(char)*(strlen(pszEncoded)+100)); |
| 4292 | if (nVersion > OWS_1_0_0) |
| 4293 | sprintf(pszTmpName, "<se:Name>%s</se:Name>\n", pszEncoded); |
| 4294 | else |
| 4295 | sprintf(pszTmpName, "<Name>%s</Name>\n", pszEncoded); |
| 4296 | |
| 4297 | |
| 4298 | msFree(pszEncoded); |
| 4299 | pszFinalSLD = msStringConcatenate(pszFinalSLD, pszTmpName); |
| 4300 | msFree(pszTmpName); |
| 4301 | pszTmpName=NULL; |
| 4302 | |
| 4303 | } |
| 4304 | else |
| 4305 | { |
| 4306 | if (nVersion > OWS_1_0_0) |
no test coverage detected