[MAPSERVER-USERS] SLD ignored / External Graphic ignored

Sicky Christian.Rueh at rostock.zgdv.de
Wed Apr 9 09:30:03 PDT 2008


Thanks for you quick reply and testing it :-)

1st: Ok, now I know that the SLD is working, but why not here?

2nd: Really? SVG isn't supported by MapServer? Then the use of it would be
quite senseless for me. Or will MapServer render lines/outlines of polygones
with PNGs or GIFs nicely? Because GeoServer doesn't (lots of gaps in the
lines etc.)!

Cheers and thanks again,
Christian.


Yewondwossen Assefa-2 wrote:
> 
> Christian,
> 
>   I did a quick test using you sld at 
> (http://sicky.i-networx.de/temp/mapserv/test.sld) with local data 
> (adapted to fit the sld : 
> http://localhost/cgi-bin/mapserv.exe?map=f:/msapps/world_testdata/map/sicky.map&SERVICE=WMS&VeRsIoN=1.1.1&Request=GetMap&LAYERS=Baugrenze&BBOX=-81.366241839,42.39269586,-77.8780568047,44.13861927&SLD=http://sicky.i-networx.de/temp/mapserv/test.sld&FORMAT=png&WIDTH=400&HEIGHT=300&SRS=EPSG:4326&FORMAT=png&WIDTH=400&HEIGHT=300&STYLES=
>   and I was able to render the layer Baugrenze using the styles defined 
> in the sld.  So I believe there is no issue with the sld. Common error 
> is usually the SLD is not accessible but you mentioned that you already 
> verified that
> 
>   2nd point is that external graphics can only be of type png or gif 
> (and not SVG). The reason being is that currently MapServer does not 
> support SVG symbols.
> 
>     I am using Mapserver svn. If you want me to do local tests with your 
> map/data, you could zip and send it to me and I will give it a try.
> 
> Best Regards,
> 
> 
> Sicky wrote:
>> I'll start off with some background of what I'm trying to do:
>> I want to define SVGs as external graphic in an SLD to use these as
>> PointSymbolizers and LineSymbolizers. Firstly I tried GeoServer and it
>> worked quite fine, the only problem was, that it wasn't rendered very
>> good.
>> So I thought of trying MapServer, but then the problems came...
>> 
>> I'm running the latest ms4w on Windows 2000 with Apache 2.2.8.
>> 
>> Here's link to my mapfile:
>> http://sicky.i-networx.de/temp/mapserv/test.map
>> 
>> That's the SLD file I let create with the GetStyles request and just
>> changed
>> a color and width to see if it was recognized:
>> http://sicky.i-networx.de/temp/mapserv/test.sld
>> GetStyles document here:
>> http://sicky.i-networx.de/temp/mapserv/GetStyles.txt
>> 
>> The important part of the GetCapabilities request is:
>> <UserDefinedSymbolization SupportSLD="1" UserLayer="0" UserStyle="1"
>> RemoteWFS="0"/>
>> (the whole one is located here:
>> http://sicky.i-networx.de/temp/mapserv/GetCapabilities.txt)
>> 
>> Since GetStyles is working fine and the wms server supports SLD I don't
>> see
>> a problem there (I searched the net for hours and hours to solve the
>> problem
>> and tried any suggestion..). But when I request a map with an SLD like
>> this:
>> http://localhost:8080/cgi-bin/mapserv.exe?map=/program%20files/ms4w/apps/blp/test.map&REQUEST=getMap&SERVICE=WMS&VERSION=1.1.1&SRS=EPSG:4326&BBOX=3954683.0884047896,5499947.559657593,3954754.5911026173,5499966.522156349&WIDTH=600&HEIGHT=700&LAYERS=Baugrenze,AllgWohngebiete&STYLES=&SLD=http://localhost:8080/test.sld&FORMAT=image/png
>> 
>> it just ignores the sld and shows this:
>> http://sicky.i-networx.de/temp/mapserv/sld.png 
>> 
>> http://localhost:8080/test.sld itself is viewable in the browser without
>> any
>> problems and the names of the layers are mathcing those in the
>> mapfile....
>> (note: in my mapfile i commented out the style for one layer to see if a
>> style in a mapfile overrides a sld)
>> 
>> I played around with this a bit, e.g. naming it 'test.xml', removing
>> 'STYLES=' and so on... but nothing helped :(
>> 
>> The I thought of the other method to use SLDs, with SLD_BODY. My request
>> is
>> as follows:
>> http://localhost:8080/cgi-bin/mapserv.exe?map=/program%20files/ms4w/apps/blp/test.map&REQUEST=getMap&SERVICE=WMS&VERSION=1.1.1&SRS=EPSG:4326&BBOX=3954683.0884047896,5499947.559657593,3954754.5911026173,5499966.522156349&LAYERS=Baugrenze,AllgWohngebiete&SLD_BODY=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3CStyledLayerDescriptor+version%3D%221.1.0%22%3E%3CNamedLayer%3E%3CName%3EBaugrenze%3C%2FName%3E%3CUserStyle%3E%3CFeatureTypeStyle%3E%3CRule%3E%3CName%3EBaugrenze%3C%2FName%3E%3CLineSymbolizer%3E%3CStroke%3E%3CCssParameter+name%3D%22stroke%22%3E%23000000%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-opacity%22%3E1.00%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-width%22%3E5%3C%2FCssParameter%3E%3C%2FStroke%3E%3C%2FLineSymbolizer%3E%3C%2FRule%3E%3C%2FFeatureTypeStyle%3E%3C%2FUserStyle%3E%3C%2FNamedLayer%3E%3CNamedLayer%3E%3CName%3EAllgWohngebiete%3C%2FName%3E%3CUserStyle%3E%3CFeatureTypeStyle%3E%3CRule%3E%3CName%3EAllgWohngebiete%3C%2FName%3E%3
> CLineSymbolizer%3E%3CStroke%3E%3CCssParameter+name%3D%22stroke%22%3E%23ff00ff%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-opacity%22%3E1.00%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-width%22%3E5%3C%2FCssParameter%3E%3C%2FStroke%3E%3C%2FLineSymbolizer%3E%3C%2FRule%3E%3C%2FFeatureTypeStyle%3E%3C%2FUserStyle%3E%3C%2FNamedLayer%3E%3C%2FStyledLayerDescriptor%3E&WIDTH=600&HEIGHT=700&FORMAT=image/png
>> 
>> the sld_body part in plain text looks like this:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <StyledLayerDescriptor version="1.1.0">
>> <NamedLayer>
>> <Name>Baugrenze</Name>
>> <UserStyle><FeatureTypeStyle>
>> <Rule><Name>Baugrenze</Name>
>> <LineSymbolizer>
>> <Stroke>
>> <CssParameter name="stroke">#000000</CssParameter>
>> <CssParameter name="stroke-opacity">1.00</CssParameter>
>> <CssParameter name="stroke-width">5</CssParameter>
>> </Stroke>
>> </LineSymbolizer>
>> </Rule>
>> </FeatureTypeStyle>
>> </UserStyle>
>> </NamedLayer>
>> <NamedLayer>
>> <Name>AllgWohngebiete</Name>
>> <UserStyle>
>> <FeatureTypeStyle>
>> <Rule>
>> <Name>AllgWohngebiete</Name>
>> <LineSymbolizer>
>> <Stroke>
>> <CssParameter name="stroke">#ff00ff</CssParameter>
>> <CssParameter name="stroke-opacity">1.00</CssParameter>
>> <CssParameter name="stroke-width">5</CssParameter>
>> </Stroke>
>> </LineSymbolizer>
>> </Rule>
>> </FeatureTypeStyle>
>> </UserStyle>
>> </NamedLayer>
>> </StyledLayerDescriptor>
>> 
>> the result made me happy:
>> http://sicky.i-networx.de/temp/mapserv/sld_body.png 
>> 
>> at least now i know that my mapserver definately works with SLDs. but
>> this
>> wouldn't be a solution since I really need to define a SLD file because
>> it's
>> gonna be very big. So i really want 'SLD=' to work instead of 'SLD_BODY'.
>> 
>> But 'SLD_BODY' doesn't work fine either :(
>> when I try to use an external graphic like in this request:
>> http://localhost:8080/cgi-bin/mapserv.exe?map=/program%20files/ms4w/apps/blp/test.map&REQUEST=getMap&SERVICE=WMS&VERSION=1.1.1&SRS=EPSG:4326&BBOX=3954683.0884047896,5499947.559657593,3954754.5911026173,5499966.522156349&LAYERS=Baugrenze,AllgWohngebiete&SLD_BODY=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3CStyledLayerDescriptor+version%3D%221.1.0%22%3E%3CNamedLayer%3E%3CName%3EBaugrenze%3C%2FName%3E%3CUserStyle%3E%3CFeatureTypeStyle%3E%3CRule%3E%3CName%3EBaugrenze%3C%2FName%3E%3CLineSymbolizer%3E%3CStroke%3E%3CGraphicStroke%3E%3CGraphic%3E%3CExternalGraphic%3E%3COnlineResource+xlink%3Ahref%3D%22http%3A%2F%2Flocalhost%3A8080%2FRsBaugrenze.svg%22%2F%3E%3CFormat%3Eimage%2Fsvg%2Bxml%3C%2FFormat%3E%3C%2FExternalGraphic%3E%3CSize%3E%3Cogc%3ALiteral%3E20%3C%2Fogc%3ALiteral%3E%3C%2FSize%3E%3C%2FGraphic%3E%3C%2FGraphicStroke%3E%3C%2FStroke%3E%3C%2FLineSymbolizer%3E%3C%2FRule%3E%3C%2FFeatureTypeStyle%3E%3C%2FUserStyle%3E%3C%2FNamedLayer%3E%3CNamedLayer%3E%3CName%3EAll
> gWohngebiete%3C%2FName%3E%3CUserStyle%3E%3CFeatureTypeStyle%3E%3CRule%3E%3CName%3EAllgWohngebiete%3C%2FName%3E%3CLineSymbolizer%3E%3CStroke%3E%3CCssParameter+name%3D%22stroke%22%3E%23ff00ff%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-opacity%22%3E1.00%3C%2FCssParameter%3E%3CCssParameter+name%3D%22stroke-width%22%3E5%3C%2FCssParameter%3E%3C%2FStroke%3E%3C%2FLineSymbolizer%3E%3C%2FRule%3E%3C%2FFeatureTypeStyle%3E%3C%2FUserStyle%3E%3C%2FNamedLayer%3E%3C%2FStyledLayerDescriptor%3E&WIDTH=600&HEIGHT=700&FORMAT=image/png
>> 
>> in plain text the sld_body part looks like this:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <StyledLayerDescriptor version="1.1.0">
>> <NamedLayer>
>> <Name>Baugrenze</Name>
>> <UserStyle>
>> <FeatureTypeStyle>
>> <Rule>
>> <Name>Baugrenze</Name>
>> <LineSymbolizer>
>> <Stroke>
>> <GraphicStroke>
>> <Graphic>
>> <ExternalGraphic>
>> <OnlineResource xlink:href="http://localhost:8080/RsBaugrenze.svg"/>
>> <Format>image/svg</Format>
>> </ExternalGraphic>
>> <Size><ogc:Literal>20</ogc:Literal></Size>
>> </Graphic>
>> </GraphicStroke>
>> </Stroke>
>> </LineSymbolizer>
>> </Rule>
>> </FeatureTypeStyle>
>> </UserStyle>
>> </NamedLayer>
>> <NamedLayer>
>> <Name>AllgWohngebiete</Name>
>> <UserStyle>
>> <FeatureTypeStyle>
>> <Rule>
>> <Name>AllgWohngebiete</Name>
>> <LineSymbolizer>
>> <Stroke>
>> <CssParameter name="stroke">#ff00ff</CssParameter>
>> <CssParameter name="stroke-opacity">1.00</CssParameter>
>> <CssParameter name="stroke-width">5</CssParameter>
>> </Stroke>
>> </LineSymbolizer>
>> </Rule>
>> </FeatureTypeStyle>
>> </UserStyle>
>> </NamedLayer>
>> </StyledLayerDescriptor>
>> 
>> http://localhost:8080/RsBaugrenze.svg of course works fine, is available
>> and
>> geoserver had no problem using it as well.
>> 
>> but the result is this:
>> http://sicky.i-networx.de/temp/mapserv/sld_body_ext.png 
>> So it styles one layer with CSS parameteres but not the other one with an
>> external graphic.
>> 
>> To conclude:
>> 1st problem: If I give the request an 'SLD=' it just gets ignored. Why?
>> How
>> can I fix this?
>> 2nd problem: Why gets the external graphic in the SLD gets ignored?
>> 
>> I'm pretty new to MapServer/GIS in general and hope I made myself clear
>> and
>> haven't forgotten anything important. If so, please say so and I give you
>> the info which might help me solve this problem.
>> And I hope the german words inside some of the documents don't confuse
>> you.
>> 
>> I would be really really happy if somebody could help me. And I would be
>> grateful if this happens fast, since I need to solve this problem fastly
>> because I need it to be solved to get on with my bachelor thesis.
>> 
>> Thanks in Advance,
>> Christian.
> 
> 
> -- 
> ----------------------------------------------------------------
> Assefa Yewondwossen
> Software Analyst
> 
> Email: assefa at dmsolutions.ca
> http://www.dmsolutions.ca/
> 
> Phone: (613) 565-5056 (ext 14)
> Fax:   (613) 565-0925
> ----------------------------------------------------------------
> 
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> 
> 

-- 
View this message in context: http://www.nabble.com/SLD-ignored---External-Graphic-ignored-tp16586209p16590545.html
Sent from the Mapserver - User mailing list archive at Nabble.com.




More information about the MapServer-users mailing list