SLD TextSymbolizer issue
Kralidis,Tom [Burlington]
Tom.Kralidis at EC.GC.CA
Fri Nov 19 14:29:59 EST 2004
> -----Original Message-----
> From: Yewondwossen Assefa [mailto:assefa at dmsolutions.ca]
> Sent: Friday, 19 November, 2004 14:11
> To: Kralidis,Tom [Burlington]
> Cc: MAPSERVER-DEV at LISTS.UMN.EDU
> Subject: Re: [UMN_MAPSERVER-DEV] SLD TextSymbolizer issue
>
>
> Tom,
>
> Here is my understanding of the specs concerning the
> sld:ParameterValueType" (which is taken form the sld 1.0 doc
> section 11.1.3)
>
>
> <xs:element name="CssParameter"
> type="sld:ParameterValueType"/> <xs:complexType
> name="ParameterValueType" mixed="true"> <xs:choice
> minOccurs="0" maxOccurs="unbounded"> <xs:element
> ref="ogc:expression"/> </xs:choice> </xs:complexType>
>
> The parameter values are allowed to be complex expressions
> for maximum
> flexibility.
> The 'mixed="true"' definition means that regular text may be mixed in
> with various sub-expressions, implying a text-substitution model for
> parameter values. Numeric and character-string data types are not
> distinguished, which may cause some complications.
>
> Here are some usage examples:
>
> <CssParameter name="stroke-width">3</CssParameter>
>
> <CssParameter name="stroke-width">
> <ogc:Literal>3</ogc:Literal>
> </CssParameter>
>
> <CssParameter name="stroke-width">
> <ogc:Add>
> <ogc:PropertyName>A</ogc:PropertyName>
> <ogc:Literal>2</ogc:Literal>
> </ogc:Add>
> </CssParameter>
>
> <Label>This is city "<ogc:PropertyName>NAME</ogc:PropertyName>"
> of state <ogc:PropertyName>STATE</ogc:PropertyName></Label>
>
>
> I think supporting <Label>label_value</Label> should be valid. I
> downladed your sld file and fter adding the schemas at the
> top, It did
> valiadte using xml-spy. Does It make sense ?
> (Note that I initially was supporting the label inside a
> propertyName
> and the code is still there but commented out).
>
I retried this with just:
<Label>OBSDATE</Label>
..and it validated.
So both constructs are valid; should we support both when ingesting SLD
XML, and output one style when producing?
..Tom
>
> Looking into the GetLegndGraphics : I do not really
> understand when you
> say "for any TextSymbolizer types". Normally any sld passed
> to the wms
> (GetMap or GetLegendGraphic) ends up creating mapserver classes (both
> request use the same sld parsing function), so If and sld is
> applied and
> the classes are created for GetMap, there is no reason that these
> classes would not be created when doing a GetLegendGraphic. I think
> from your SLD, the elements <Name> is missing from the
> <Rule>, which is
> supposed to be used as the class name. Could it be the reason ?
>
I inserted <Rule><Name> and it worked -- thanks.
>
> Later,
>
>
>
>
> Kralidis,Tom [Burlington] wrote:
>
> > Hi,
> >
> > We've been doing some testing of MapServer with SLD for labelling
> > layers and have seem to run into issues. Orginally, we had issues
> > with specifying fonts, however, upon deeper investigation,
> the problem
> > may be elsewhere.
> >
> > Use case:
> >
> > Here's a GetMap on a simple layer:
> >
> >
> http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?SERVICE=WMS&VERSION=1.1.1&
> > RE
> >
> QUEST=GetMap&SRS=EPSG%3A4326&BBOX=-102.9742339843798,32.853526
> 53562978,-
> >
> 58.474233982194,60.66602653699591&WIDTH=560&HEIGHT=350&LAYERS=
> obs&STYLES
> >
> =&FORMAT=image%2Fpng&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&EXCEPT
> IONS=appli
> > cation/vnd.ogc.se_xml&
> >
> > Here's the same GetMap with an SLD:
> >
> > http://devgeo.cciw.ca/ms_tmp/obs1.sld
> >
> > ..which was copied from the example at:
> >
> >
> http://www2.dmsolutions.ca/msapps/world_testdata/tests/sld_tests/sld_t
> > ex
> > t_annotation.xml
> >
> > ..and tweaked for the layer on my server:
> >
> >
> http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?SERVICE=WMS&VERSION=1.1.1&
> > RE
> >
> QUEST=GetMap&SRS=EPSG%3A4326&BBOX=-102.9742339843798,32.853526
> 53562978,-
> >
> 58.474233982194,60.66602653699591&WIDTH=560&HEIGHT=350&LAYERS=
> obs&STYLES
> >
> =&FORMAT=image%2Fpng&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&EXCEPT
> IONS=appli
> > cation/vnd.ogc.se_xml&SLD=http://devgeo.cciw.ca/ms_tmp/obs1.sld
> >
> > ..which gives us back what we are expecting. However, this
> is not a
> > valid SLD document. When I create a valid SLD document:
> >
> > http://devgeo.cciw.ca/ms_tmp/obs2.sld
> >
> > And run the same GetMap with this SLD:
> >
> >
> http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?SERVICE=WMS&VERSION=1.1.1&
> > RE
> >
> QUEST=GetMap&SRS=EPSG%3A4326&BBOX=-102.9742339843798,32.853526
> 53562978,-
> >
> 58.474233982194,60.66602653699591&WIDTH=560&HEIGHT=350&LAYERS=
> obs&STYLES
> >
> =&FORMAT=image%2Fpng&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&EXCEPT
> IONS=appli
> > cation/vnd.ogc.se_xml&SLD=http://devgeo.cciw.ca/ms_tmp/obs2.sld
> >
> > I get an Exception to the effect of:
> >
> > <?xml version='1.0' encoding="ISO-8859-1" standalone="no"
> ?> <!DOCTYPE
> > ServiceExceptionReport SYSTEM
> > "http://schemas.opengeospatial.net/wms/1.1.1/exception_1_1_1.dtd">
> > <ServiceExceptionReport version="1.1.1">
> > <ServiceException>
> > msDrawMap(): Image handling error. Failed to draw layer named
> > 'obs'.
> > msDBFGetItemIndex(): DBASE file error. Item
> 'PropertyName' not
> > found. </ServiceException>
> > </ServiceExceptionReport>
> >
> > In addition, GetLegendGraphic requests do not work (for any
> > TextSymbolizer types, actually).
> >
> > Looking at the two SLD documents in question, the working
> SLD (which
> > is not valid) looks for the label property as:
> >
> >
> /StyledLayerDescriptor/NamedLayer/UserStyle/FeatureTypeStyle/TextSymbo
> > li
> > zer/Label
> >
> > Whereas the spec defines it like:
> >
> >
> /StyledLayerDescriptor/NamedLayer/UserStyle/FeatureTypeStyle/TextSymbo
> > li
> > zer/Label/ogc:PropertyName
> >
> > Comments?
> >
> > ..Tom
> >
> >
>
>
> --
> ----------------------------------------------------------------
> Assefa Yewondwossen
> Software Analyst
>
> Email: assefa at dmsolutions.ca
> http://www.dmsolutions.ca/
>
> Phone: (613) 565-5056 (ext 14)
> Fax: (613) 565-0925
> ----------------------------------------------------------------
>
>
>
More information about the mapserver-dev
mailing list