SLD TextSymbolizer issue
Kralidis,Tom [Burlington]
Tom.Kralidis at EC.GC.CA
Fri Nov 19 17:56:44 EST 2004
Oh, ok. So the font is taken from LEGEND. I agree with this for
non-annotation/text type layers, but for text, I think it's just as much
a representation of the layer as is the style of a point/line/polygon.
I wonder what some of the developers on this list think?
..Tom
> -----Original Message-----
> From: Yewondwossen Assefa [mailto:assefa at dmsolutions.ca]
> Sent: Friday, 19 November, 2004 16:08
> To: Kralidis,Tom [Burlington]
> Cc: MAPSERVER-DEV at LISTS.UMN.EDU
> Subject: Re: [UMN_MAPSERVER-DEV] SLD TextSymbolizer issue
>
>
> Do you mean that you expected the label that is appearing in
> the legend
> (for the GetLegendGraphic) to use the same font as the one defined in
> the sld ? If that is the case, from what I know, the font/color used
> for the legend in mapserver comes from the LEGEND definition
> in the map
> file. It makes sense to do that since you generally want your legend
> labels to look all the same (or maybe not ?). We could sync
> the label
> elements of the legend object with the values that we have
> from the SLD
> or mapfile but I think It is kind of a hack and there could
> be potential
> issues with that.
>
> Kralidis,Tom [Burlington] wrote:
>
> > Assefa,
> >
> > Thanks. We'll use the <Label>field_name</Label> workaround for now.
> >
> > Working with this approach, annotation text shows up as
> expected via
> > GetMap with SLD.
> >
> > When re-testing with GetLegendGraphic, If Rule/Name is
> defined, then
> > this text shows up in the legend image, however in no relation if a
> > font def is defined in the SLD?
> >
> > Example:
> >
> > GetMap with font fritqat-bold-italic (this font exists in my
> > mapfile/WMS):
> >
> >
> http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?SERVICE=WMS&VERSION=1.1.1&
> > RE
> >
> QUEST=GetMap&SRS=EPSG%3A4326&BBOX=-173.9403612899645,2.4593942
> 78772166,-
> >
> 4.913357430035461,108.1012716912278&WIDTH=560&HEIGHT=350&LAYER
> S=obs&STYL
> >
> ES=&SLD=http%3A%2F%2Fdevgeo.cciw.ca%2Fms_tmp%2Fobs3.sld&FORMAT
> =image%2Fp
> >
> ng&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&EXCEPTIONS=application%2
> Fvnd.ogc.s
> > e_inimage
> >
> > GetLegendGraphic
> >
> >
> http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?SERVICE=WMS&VERSION=1.1.1&
> > RE
> >
> QUEST=GetLegendGraphic&LAYER=obs&STYLE=sld_01&FORMAT=image%2Fg
> if&SLD=htt
> > p%3A%2F%2Fdevgeo.cciw.ca%2Fms_tmp%2Fobs3.sld
> >
> > Is this expected behaviour? If yes, can we enhance
> GetLegendGraphic
> > such that the font of the text matches that defined (if defined) in
> > the SLD or mapfile?
> >
> > ..Tom
> >
> >
> >
> >
> >>-----Original Message-----
> >>From: UMN MapServer Developers List
> >>[mailto:MAPSERVER-DEV at LISTS.UMN.EDU] On Behalf Of
> Yewondwossen Assefa
> >>Sent: Friday, 19 November, 2004 14:38
> >>To: MAPSERVER-DEV at LISTS.UMN.EDU
> >>Subject: Re: [UMN_MAPSERVER-DEV] SLD TextSymbolizer issue
> >>
> >>
> >>I filed a bug on it (Bug 1076) to support both ways. Should
> >>not be difficult to do but I have set it to be done after the
> >>4.4 release.
> >>
> >>Later,
> >>
> >>Kralidis,Tom [Burlington] wrote:
> >>
> >>
> >>>>-----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&VERS
> >>
> >>ION=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_t
> >>
> >>ests/sld_t
> >>
> >>>>>ex
> >>>>>t_annotation.xml
> >>>>>
> >>>>>..and tweaked for the layer on my server:
> >>>>>
> >>>>>
> >>>>
> >>>>http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?SERVICE=WMS&VERS
> >>
> >>ION=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&VERS
> >>
> >>ION=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
> >>>>----------------------------------------------------------------
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>
> >>--
> >>----------------------------------------------------------------
> >>Assefa Yewondwossen
> >>Software Analyst
> >>
> >>Email: assefa at dmsolutions.ca
> >>http://www.dmsolutions.ca/
> >>
> >>Phone: (613) 565-5056 (ext 14)
> >>Fax: (613) 565-0925
> >>----------------------------------------------------------------
> >>
> >
> >
> >
>
>
> --
> ----------------------------------------------------------------
> 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