[Geoserver-users] SLD examples of: Units of measure (uom) and PolygonSymbolizer/ ExternalGraphic(.SVG)

Hello list – has anybody tried Units of measure(uom) when rendering polygons
with .svg symbols?
I´ve search for several hours but only find a line-example and one with
Hatching, which didn´t work.

If possible I would like to use SLD 1.0 and WMS 1.1.1 .

It would be nice to have some SLD code like:

        <Rule>
          <Title>Blue Line, 5m large</Title>
          <LineSymbolizer
uom="http://www.opengeospatial.org/se/units/metre&quot;&gt;
            <Stroke>
              <CssParameter name="stroke">#0000FF</CssParameter>
              <CssParameter name="stroke-width">5</CssParameter>
            </Stroke>
          </LineSymbolizer>
        </Rule>

Regards Anders Söderman Stockholm Sweden

2011/5/15 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello list – has anybody tried Units of measure(uom) when rendering polygons
with .svg symbols?

Never tried that particular combination, normally use uom only for point
sizes and line widths.

However, in theory you should use a graphic fill like in this example:

http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/polygons.html#graphic-fill

but point to a svg (with proper mime type) and specify uom in the polygon
symbolizer.

If that does not work show us a reproducable test case with the behavior
you're getting, and the one you were expecting instead.

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

Thanks Andrea.

Units of measure (uom) and PolygonSymbolizer/ExternalGraphic(.SVG) works
fine in OpenGeo GeoServer 2.1-SNAPSHOT 15317 Build Date 27-Jan-2011 21:53.

I had to save my Inkscape .svg file in meters instead of pixels (of course!)
Thanks again :slight_smile: Anders Söderman Stockholm Sweden

-----Original Message-----
From: andrea.aime@anonymised.com [mailto:andrea.aime@anonymised.com] On Behalf Of
Andrea Aime
Sent: den 15 maj 2011 09:46
To: Anders Söderman
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] SLD examples of: Units of measure (uom) and
PolygonSymbolizer/ ExternalGraphic(.SVG)

2011/5/15 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello list – has anybody tried Units of measure(uom) when rendering

polygons

with .svg symbols?

Never tried that particular combination, normally use uom only for point
sizes and line widths.

However, in theory you should use a graphic fill like in this example:

http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/polygons.html#
graphic-fill

but point to a svg (with proper mime type) and specify uom in the polygon
symbolizer.

If that does not work show us a reproducable test case with the behavior
you're getting, and the one you were expecting instead.

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

Hello, I´m working with an SLD which have
13 different scale intervals from
0 – 1:750
1:750 – 1:1 500
…
to
1:1 536 000 –

It would be very useful to be able to use the existing “GetMap request-
scale” on the screen as an input to calculate my rendering parameters
instead of having a huge SLD covering all 13 scaleintervals, each having
many rules for text and about ten different area-intervals.

Does GeoServer “know” the scale as a parameter which I can use or is it
possible to calculate the scale within the SLD using BB and the size of the
mapwindow, which I suppose GeoServer needs to know before sending back the
GetMap result?

My goal is to optimize the number of symbols being rendered in each polygon
to have as few renderingsymbols as possible without leaving an area/polygon
without a symbol within the polygon.
Regards Anders Söderman Stockholm, Sweden

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello, I´m working with an SLD which have
13 different scale intervals from
0 – 1:750
1:750 – 1:1 500

to
1:1 536 000 –

It would be very useful to be able to use the existing “GetMap request-
scale” on the screen as an input to calculate my rendering parameters
instead of having a huge SLD covering all 13 scaleintervals, each having
many rules for text and about ten different area-intervals.

Does GeoServer “know” the scale as a parameter which I can use or is it
possible to calculate the scale within the SLD using BB and the size of the
mapwindow, which I suppose GeoServer needs to know before sending back the
GetMap result?

My goal is to optimize the number of symbols being rendered in each polygon
to have as few renderingsymbols as possible without leaving an area/polygon
without a symbol within the polygon.

There is no way to compute the scale in the SLD at the moment, though
we might provide the scale in the future on trunk (what will become 2.2.x),
of course as a GS specific extension.

However most of the time what people want to do there is do have line
widths that grow as one zooms in, that you can get specifying symbolizer
sizes in ground units:
http://docs.geoserver.org/latest/en/user/styling/sld-extensions/uom.html

Hope this helps
Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

Another approach is to use the CSS module …
http://docs.geoserver.org/latest/en/user/community/css/index.html
Read about ‘@scale’ here …
http://docs.geoserver.org/latest/en/user/community/css/filters.html
Regards,
David

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>

Hello, I´m working with an SLD which have
13 different scale intervals from
0 – 1:750
1:750 – 1:1 500

to
1:1 536 000 –

It would be very useful to be able to use the existing “GetMap request-
scale” on the screen as an input to calculate my rendering parameters
instead of having a huge SLD covering all 13 scaleintervals, each having
many rules for text and about ten different area-intervals.

Does GeoServer “know” the scale as a parameter which I can use or is it
possible to calculate the scale within the SLD using BB and the size of the
mapwindow, which I suppose GeoServer needs to know before sending back the
GetMap result?

My goal is to optimize the number of symbols being rendered in each polygon
to have as few renderingsymbols as possible without leaving an area/polygon
without a symbol within the polygon.
Regards Anders Söderman Stockholm, Sweden


EditLive Enterprise is the world’s most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

2011/6/12 David Collins <david.8.collins@anonymised.com>:

Another approach is to use the CSS module ..
http://docs.geoserver.org/latest/en/user/community/css/index.html
Read about '@scale' here ..
http://docs.geoserver.org/latest/en/user/community/css/filters.html

Hmmm... as far as I can see those are just the equivalents of
minScaleDenominator/maxScaleDenominator in SLD.
Allows to enable/disable styles by the current scale, but does not
make one know what the current scale value is.

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

Hello Andrea and David and thanks for your input.

I have tried UOM meter instead of pixels, but it made things even more
complicated as far as I could see.
I will look into CSS to see if my VERY LARGE SLDs could be made more
"readable" or at least shorter.

One SLD file with 13 scaleintervals each having 3 - 8 areaintervals means
that I have to write the name of the SVG-file, Stroke colours etc many
times.
My guestion:
It would be very nice to be able to start the SLD with PARAMETERS
(SVG_file_1, SVG_file_2 ...) ie.
SVG_file_1 = xyz_1.svg
SVG_file_2 = xyz_2.svg
etc.
and then I only have to change xyz_1.svg, xyz_2.svg etc. to my SVG
filenamnes right in the beginning of the SLD file.

I hope you understand my problem.
I looked at the "env" variable but I couldn´t figure out if it could be
used.
My webcartography testing needs 30+ different SLD files for different
WMS-layers and it takes a long time editing the SLDs when I´m testing
something different ...
Regards Anders Söderman Stockholm, Sweden

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello, I´m working with an SLD which have
13 different scale intervals from
0 – 1:750
1:750 – 1:1 500
…
to
1:1 536 000 –

It would be very useful to be able to use the existing “GetMap request-
scale” on the screen as an input to calculate my rendering parameters
instead of having a huge SLD covering all 13 scaleintervals, each having
many rules for text and about ten different area-intervals.

Does GeoServer “know” the scale as a parameter which I can use or is it
possible to calculate the scale within the SLD using BB and the size of

the

mapwindow, which I suppose GeoServer needs to know before sending back the
GetMap result?

My goal is to optimize the number of symbols being rendered in each

polygon

to have as few renderingsymbols as possible without leaving an

area/polygon

without a symbol within the polygon.

There is no way to compute the scale in the SLD at the moment, though
we might provide the scale in the future on trunk (what will become 2.2.x),
of course as a GS specific extension.

However most of the time what people want to do there is do have line
widths that grow as one zooms in, that you can get specifying symbolizer
sizes in ground units:
http://docs.geoserver.org/latest/en/user/styling/sld-extensions/uom.html

Hope this helps
Cheers
Andrea

2011/6/12 David Collins <david.8.collins@anonymised.com>:
Sent: den 12 juni 2011 10:46

Another approach is to use the CSS module ..
http://docs.geoserver.org/latest/en/user/community/css/index.html
Read about '@scale' here ..
http://docs.geoserver.org/latest/en/user/community/css/filters.html

Hmmm... as far as I can see those are just the equivalents of
minScaleDenominator/maxScaleDenominator in SLD.
Allows to enable/disable styles by the current scale, but does not make one
know what the current scale value is.

Cheers
Andrea

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello Andrea and David and thanks for your input.

I have tried UOM meter instead of pixels, but it made things even more
complicated as far as I could see.

I guess your problem is not changing the size of the symbolizer based
on the scale then.

I will look into CSS to see if my VERY LARGE SLDs could be made more
"readable" or at least shorter.

That will definitely make for much more compact specifications, easier to read,
and quicker to write.
Though I guess you may want to use SLDs for a few months to come, at
least until the SLD workshop at FOSS4G :-p
http://2011.foss4g.org/sessions/practical-use-geoserver-sld-wms

One SLD file with 13 scaleintervals each having 3 - 8 areaintervals means
that I have to write the name of the SVG-file, Stroke colours etc many
times.
My guestion:
It would be very nice to be able to start the SLD with PARAMETERS
(SVG_file_1, SVG_file_2 ...) ie.
SVG_file_1 = xyz_1.svg
SVG_file_2 = xyz_2.svg
etc.
and then I only have to change xyz_1.svg, xyz_2.svg etc. to my SVG
filenamnes right in the beginning of the SLD file.
I hope you understand my problem.

Not really no. Seeing the SLD in question would help.

I looked at the "env" variable but I couldn´t figure out if it could be
used.

It is used to pass into the SLD values coming from the WMS request itself.
It is documented here:
http://docs.geoserver.org/stable/en/user/styling/sld-extensions/substitution.html

If you want to change the name of a SVG on a per request basis you can
do so by adding &env=svg1:symbol1
and then have the following in the SLD (using the dynamic symbolizers features,
another GeoServer extension):

<OnlineResource xlink:type="simple" xlink:href="${env('svg1')}.svg"/>

that is calling the env function with 'svg1' as the key. You can also
provide a default
value to have a valid SLD even when the parameter is not provided in
the request:

<OnlineResource xlink:type="simple" xlink:href="${env('svg1',
'defaultSymbol')}.svg"/>

In this case if you don't specify the value of svg1 in the request you'll get
defaultSymbol.svg as the default svg file

Ah, though I never tried, as far as I know most of the above can be
done in CSS as well,
so you can have the style be compact and parametric at the same time.

Hope this helps!

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

Hello Andrea - hear comes the SLD.

As you see, my SVG filenames has many characters witch makes it hard to use
the &env= , I think.
I believe the URL in a GetMap request is limited to 512 or 1024 characters?

This is only one part/scaleinterval (of 13) of my SLD covering the Rules for
1:96000 to 1:192000 and this example has 5 area intervals.

My naming of SVG files:
YMS200 is one SVG 200x200 pixel Symbol.
YMark2000_4 This is a 2000x2000 pixel SVG symbol that has four (4) YMS200
symbols.
YMark2000_1 has one YMS200 and YMark2000_16 has sixteen (16) YMS200 symbols.

I´m testing these SVG symbols to minimize the amount of symbols in each
polygon.
Thanks and regards. Anders Söderman Stockholm, Sweden.

My question:

One SLD file with 13 scaleintervals each having 3 - 8 areaintervals means
that I have to write the name of the SVG-file, Stroke colours etc many
times.
My guestion:
It would be very nice to be able to start the SLD with PARAMETERS
(SVG_file_1, SVG_file_2 ...) ie.
SVG_file_1 = xyz_1.svg
SVG_file_2 = xyz_2.svg
etc.
and then I only have to change xyz_1.svg, xyz_2.svg etc. to my SVG
filenamnes right in the beginning of the SLD file.
I hope you understand my problem.

Andrea: Not really no. Seeing the SLD in question would help.

Here is the SLD:

<!-- Regel Lst_RI_Kulturmiljovard Snowstar_Kringla i skalområdet 1:96 000 -
1:192 000 Målskala 1:144 000 -->
         <Rule>
          <ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>0</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>100</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
         <sld:MinScaleDenominator>96000.0</sld:MinScaleDenominator>
         <sld:MaxScaleDenominator>192000.0</sld:MaxScaleDenominator>
          <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="YMS200_Lst_RI_Kulturmiljövård SnowStar Kringla Brun TEXT
ans110529.svg"/>
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>25</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
             </Fill>
             <Stroke>
                <CssParameter name="stroke">#8F3E0F</CssParameter>
                <CssParameter name="stroke-width">2</CssParameter>
             </Stroke>
          </PolygonSymbolizer>
         <TextSymbolizer>
           <Label>Kulturmiljövård</Label>
           <Font>
             <CssParameter name="font-family">Arial</CssParameter>
             <CssParameter name="font-size">12</CssParameter>
             <CssParameter name="font-style">normal</CssParameter>
             <CssParameter name="font-weight">bold</CssParameter>
           </Font>
           <LabelPlacement>
             <PointPlacement>
               <AnchorPoint>
                 <AnchorPointX>0.0</AnchorPointX>
                 <AnchorPointY>0.0</AnchorPointY>
               </AnchorPoint>
               <sld:DisplacementX>0</sld:DisplacementX>
               <sld:DisplacementY>20</sld:DisplacementY>
             </PointPlacement>
            </LabelPlacement>
           <VendorOption name="goodnessOfFit">0</VendorOption>
        </TextSymbolizer>
         </Rule>

         <Rule>
<!-- Först Name och Title som skrivs ut i GetLegendGraphics. Därefter
FILTER. Sedan SCALE. Sist SYMBOLIZER ans110419 -->
          <ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>100</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>1000</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
         <sld:MinScaleDenominator>96000.0</sld:MinScaleDenominator>
         <sld:MaxScaleDenominator>192000.0</sld:MaxScaleDenominator>
          <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="YMS200_Lst_RI_Kulturmiljövård SnowStar Kringla Brun TEXT
ans110529.svg"/>
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>65</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
             </Fill>
             <Stroke>
                <CssParameter name="stroke">#8F3E0F</CssParameter>
                <CssParameter name="stroke-width">3</CssParameter>
             </Stroke>
          </PolygonSymbolizer>
         </Rule>

         <Rule>
<!-- Först Name och Title som skrivs ut i GetLegendGraphics. Därefter
FILTER. Sedan SCALE. Sist SYMBOLIZER ans110419 -->
<!-- Jag har inte gjort i ordning dessa intervall SOM SKA VARA TVÅ STYCKEN
1-3-15 Lägger in YMK2000_16 så länge med 300px -->
          <ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>1000</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>15000</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
         <sld:MinScaleDenominator>96000.0</sld:MinScaleDenominator>
         <sld:MaxScaleDenominator>192000.0</sld:MaxScaleDenominator>
          <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="YMark2000_16_Lst_RI_ Kulturmiljövård SnowStar Kringla S18 Brun
TEXT ans110529.svg"/>
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>300</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
             </Fill>
             <Stroke>
                <CssParameter name="stroke">#8F3E0F</CssParameter>
                <CssParameter name="stroke-width">5</CssParameter>
             </Stroke>
          </PolygonSymbolizer>
         </Rule>

         <Rule>
<!-- Först Name och Title som skrivs ut i GetLegendGraphics. Därefter
FILTER. Sedan SCALE. Sist SYMBOLIZER ans110419 -->
          <ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>15000</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>100000</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
         <sld:MinScaleDenominator>96000.0</sld:MinScaleDenominator>
         <sld:MaxScaleDenominator>192000.0</sld:MaxScaleDenominator>
          <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="YMark2000_4_Lst_RI_ Kulturmiljövård SnowStar Kringla S18 Brun
TEXT ans110529.svg"/>
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>600</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
             </Fill>
             <Stroke>
                <CssParameter name="stroke">#8F3E0F</CssParameter>
                <CssParameter name="stroke-width">5</CssParameter>
             </Stroke>
          </PolygonSymbolizer>
         </Rule>
        
        <Rule>
<!-- Först Name och Title som skrivs ut i GetLegendGraphics. Därefter
FILTER. Sedan SCALE. Sist SYMBOLIZER ans110419 -->
          <ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>100000</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>10000000</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
         <sld:MinScaleDenominator>96000.0</sld:MinScaleDenominator>
         <sld:MaxScaleDenominator>192000.0</sld:MaxScaleDenominator>
          <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="YMark2000_1_Lst_RI_ Kulturmiljövård SnowStar Kringla S18 Brun
TEXT ans110529.svg"/>
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>600</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
             </Fill>
             <Stroke>
                <CssParameter name="stroke">#8F3E0F</CssParameter>
                <CssParameter name="stroke-width">5</CssParameter>
             </Stroke>
          </PolygonSymbolizer>
         </Rule>

-----Original Message-----
From: andrea.aime@anonymised.com [mailto:andrea.aime@anonymised.com] On Behalf Of
Andrea Aime
Sent: den 12 juni 2011 16:58
To: Anders Söderman
Cc: David Collins; geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Is it possible to use the active scale on the
screen for calculations in an SLD.

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello Andrea and David and thanks for your input.

I have tried UOM meter instead of pixels, but it made things even more
complicated as far as I could see.

I guess your problem is not changing the size of the symbolizer based
on the scale then.

I will look into CSS to see if my VERY LARGE SLDs could be made more
"readable" or at least shorter.

That will definitely make for much more compact specifications, easier to
read,
and quicker to write.
Though I guess you may want to use SLDs for a few months to come, at
least until the SLD workshop at FOSS4G :-p
http://2011.foss4g.org/sessions/practical-use-geoserver-sld-wms

One SLD file with 13 scaleintervals each having 3 - 8 areaintervals means
that I have to write the name of the SVG-file, Stroke colours etc many
times.
My guestion:
It would be very nice to be able to start the SLD with PARAMETERS
(SVG_file_1, SVG_file_2 ...) ie.
SVG_file_1 = xyz_1.svg
SVG_file_2 = xyz_2.svg
etc.
and then I only have to change xyz_1.svg, xyz_2.svg etc. to my SVG
filenamnes right in the beginning of the SLD file.
I hope you understand my problem.

Not really no. Seeing the SLD in question would help.

I looked at the "env" variable but I couldn´t figure out if it could be
used.

It is used to pass into the SLD values coming from the WMS request itself.
It is documented here:
http://docs.geoserver.org/stable/en/user/styling/sld-extensions/substitution
.html

If you want to change the name of a SVG on a per request basis you can
do so by adding &env=svg1:symbol1
and then have the following in the SLD (using the dynamic symbolizers
features,
another GeoServer extension):

<OnlineResource xlink:type="simple" xlink:href="${env('svg1')}.svg"/>

that is calling the env function with 'svg1' as the key. You can also
provide a default
value to have a valid SLD even when the parameter is not provided in
the request:

<OnlineResource xlink:type="simple" xlink:href="${env('svg1',
'defaultSymbol')}.svg"/>

In this case if you don't specify the value of svg1 in the request you'll
get
defaultSymbol.svg as the default svg file

Ah, though I never tried, as far as I know most of the above can be
done in CSS as well,
so you can have the style be compact and parametric at the same time.

Hope this helps!

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello Andrea - hear comes the SLD.

As you see, my SVG filenames has many characters witch makes it hard to use
the &env= , I think.
I believe the URL in a GetMap request is limited to 512 or 1024 characters?

This is only one part/scaleinterval (of 13) of my SLD covering the Rules for
1:96000 to 1:192000 and this example has 5 area intervals.

My naming of SVG files:
YMS200 is one SVG 200x200 pixel Symbol.
YMark2000_4 This is a 2000x2000 pixel SVG symbol that has four (4) YMS200
symbols.
YMark2000_1 has one YMS200 and YMark2000_16 has sixteen (16) YMS200 symbols.

I´m testing these SVG symbols to minimize the amount of symbols in each
polygon.

This is making no sense to me. What do you hope to get by that, performance
improvement? The code is already turning the SVG into a raster and tasselating
it over in the polygon, we don't pay a "per SVG" overhead.
As far as I know there should be no advantage, and if there is, we
have to improve the code

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

I´m testing these SVG symbols to minimize the amount of symbols in each
polygon.

What I´m trying to do is making up to 9 WMS layers readable above a basemap,
that´s why I try to get as few SVG symbols as possible in each polygon.
Otherwise the symbols disturb the basemap/background map and they also make
it hard for the users to put on their own readable layers.
This means I need many scale intervals (13) and area intervals (6 or
more)and each combination having one SVG file, which makes my SLD very long
and I´m trying to find an easier way to edit this SLDs. If it was possible
to write the names of the 4-8 SVG files as parameters in the beginning of
the SLD I didn´t have to edit 78 or more SVG filenames in each of the up to
nine SLDs.

I made a presentation in Finland last week trying to explain my ideas. If
you have the time to give it a few minutes I put it on my website (48MB).
I think my ideas will be very useful when it comes to Inspire and the use of
all the WMS layers that will be available in the future.
http://www.gisassistans.se/dokument/GI%20Norden%20Abo%20Turko%20SF%20110608_
09%2036OH%20ans110607%202140.ppt

Right now I´m only testing two scale intervals with up to six area intervals
as I urgently need more/new pictures during my presentation at ICC in Paris
in three weeks.
Regards Anders Söderman Stockholm, Sweden.

-----Original Message-----
From: andrea.aime@anonymised.com [mailto:andrea.aime@anonymised.com] On Behalf Of
Andrea Aime
Sent: den 13 juni 2011 09:23
To: Anders Söderman
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Is it possible to use the active scale on the
screen for calculations in an SLD AND Is it possible to use PARAMETERS in
very large SLDs ?.

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com>:

Hello Andrea - hear comes the SLD.

As you see, my SVG filenames has many characters witch makes it hard to

use

the &env= , I think.
I believe the URL in a GetMap request is limited to 512 or 1024

characters?

This is only one part/scaleinterval (of 13) of my SLD covering the Rules

for

1:96000 to 1:192000 and this example has 5 area intervals.

My naming of SVG files:
YMS200 is one SVG 200x200 pixel Symbol.
YMark2000_4 This is a 2000x2000 pixel SVG symbol that has four (4) YMS200
symbols.
YMark2000_1 has one YMS200 and YMark2000_16 has sixteen (16) YMS200

symbols.

I´m testing these SVG symbols to minimize the amount of symbols in each
polygon.

This is making no sense to me. What do you hope to get by that, performance
improvement? The code is already turning the SVG into a raster and
tasselating
it over in the polygon, we don't pay a "per SVG" overhead.
As far as I know there should be no advantage, and if there is, we
have to improve the code

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

It’s true that @scale in CSS is basically equivalent to Min/MaxScaleDenominator in SLD; in particular it can only be used in selectors, not in expressions. However, because of the inheritance model in CSS, it allows you to enable or disable individual properties instead of entire rules. Consider a style where you want to use several symbols depending on some property, but vary the size for all of them based only on scale:

[class=star] { mark: symbol(star); }
[class=delta] { mark: symbol(triangle); }
[class=blob] { mark: symbol(circle); }
[class=the_spot] { mark: symbol(x); }
[@scale < 10000] { mark-size: 20px; }
[@scale > 10000] { mark-size: 16px; }
[@scale > 100000] { mark-size: 12px; }

The varying mark-size property would be shared across all of the mark classes.

On the topic of UOM, I don’t think I have implemented that yet (been a while since I thought about it.) It is a bit complicated since CSS has very natural syntax for specifying different units for each property, while in SLD you have a specific world unit that all properties use; I haven’t decided on a way to resolve that conflict yet.

Dynamic symbolizer expressions in URLs probably work, but since the GeoTools SLD encoder does not allow relative paths in ExternalGraphic href’s they get resolved relative to the styles directory and re-encoded so it’s possible there is an issue here. I am pretty sure they worked before I implemented that URL resolution though, if that helps at all.


David Winslow
OpenGeo - http://opengeo.org/

2011/6/12 Andrea Aime <andrea.aime@anonymised.com>

2011/6/12 Anders Söderman <Anders.Soderman@anonymised.com3…>:

Hello Andrea and David and thanks for your input.

I have tried UOM meter instead of pixels, but it made things even more
complicated as far as I could see.

I guess your problem is not changing the size of the symbolizer based
on the scale then.

I will look into CSS to see if my VERY LARGE SLDs could be made more
“readable” or at least shorter.

That will definitely make for much more compact specifications, easier to read,
and quicker to write.
Though I guess you may want to use SLDs for a few months to come, at
least until the SLD workshop at FOSS4G :-p
http://2011.foss4g.org/sessions/practical-use-geoserver-sld-wms

One SLD file with 13 scaleintervals each having 3 - 8 areaintervals means
that I have to write the name of the SVG-file, Stroke colours etc many
times.
My guestion:
It would be very nice to be able to start the SLD with PARAMETERS
(SVG_file_1, SVG_file_2 …) ie.
SVG_file_1 = xyz_1.svg
SVG_file_2 = xyz_2.svg
etc.
and then I only have to change xyz_1.svg, xyz_2.svg etc. to my SVG
filenamnes right in the beginning of the SLD file.
I hope you understand my problem.

Not really no. Seeing the SLD in question would help.

I looked at the “env” variable but I couldn´t figure out if it could be
used.

It is used to pass into the SLD values coming from the WMS request itself.
It is documented here:
http://docs.geoserver.org/stable/en/user/styling/sld-extensions/substitution.html

If you want to change the name of a SVG on a per request basis you can
do so by adding &env=svg1:symbol1
and then have the following in the SLD (using the dynamic symbolizers features,
another GeoServer extension):

that is calling the env function with ‘svg1’ as the key. You can also
provide a default
value to have a valid SLD even when the parameter is not provided in
the request:

In this case if you don’t specify the value of svg1 in the request you’ll get
defaultSymbol.svg as the default svg file

Ah, though I never tried, as far as I know most of the above can be
done in CSS as well,
so you can have the style be compact and parametric at the same time.

Hope this helps!

Cheers
Andrea

Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf



EditLive Enterprise is the world’s most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Hello - my Denver webcartography GeoServer/SLD workshop is coming closer and
I really would like to solve the following problem, but I need some help.
(I´m coming back to this question I had in the middle of June 2011):

I have to cut and past 10 different SVG filenames in up to 130 different
parts of a huge SLD file and I will have hundreds of these files in the
future.
The SLD files all look exactly the same except for the names of the SVG
files and the line color (…"stroke">#00FF00…) of the polygon.
This is an example of one of the 130 parts (only PolygonSymbolizer and
GraphicFill) of the SLD (with up to 13 scale intervals and 10 area intervals
depending on the geodata):

…
<ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>AREA_ha</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>150</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>300</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
           <sld:MinScaleDenominator>24000.0</sld:MinScaleDenominator>
           <sld:MaxScaleDenominator>48000.0</sld:MaxScaleDenominator>
           <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="NameOfTheSVGfile.svg" />
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>50</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
             </Fill>
…

I would like to give the names (NameOfTheSVGfile.svg) of the up to 10
different SVG files and the Stroke color in the beginning of the SLD which
will take a couple of minutes instead of sometimes hours if I have to edit
the whole SLD file.

I have find things like
  
id="File1"
with
xlink:href="#File1"

which looks interesting but all the XML/Xlink examples has nothing to do
with GeoServer and SLD.
Is it anybody who has any ideas or am I still not able to describe my
problem?
Regards Anders Söderman Stockholm Sweden.

2011/8/8 Anders Söderman <Anders.Soderman@anonymised.com>:

I would like to give the names (NameOfTheSVGfile.svg) of the up to 10
different SVG files and the Stroke color in the beginning of the SLD which
will take a couple of minutes instead of sometimes hours if I have to edit
the whole SLD file.

As a SLD expert you should know it's not possible to do what you ask
with just standard SLD.

GeoServer does not allow to do what you ask either, your best option is
to embed the name of the svg in your data as an attribute and then use
the "dynamic symbolizer" extension that is specific to GeoServer, see here:

http://blog.geoserver.org/2008/12/08/dynamic-symbolizers-part-1/

Or else, you can go through the proposal process in GeoTools and
add the functionality you want directly in the code, that's how all
extensions to SLD we support are born.

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

It’s also possible to avoid this sort of repetition using the CSS extension. The SLDs you generate will still be repetitive but the CSS code that you actually edit can be much terser.

See http://docs.geoserver.org/stable/en/user/community/css/index.html for more information about it.


David Winslow
OpenGeo - http://opengeo.org/

2011/8/8 Andrea Aime <andrea.aime@anonymised.com…1107…>

2011/8/8 Anders Söderman <Anders.Soderman@anonymised.com>:

I would like to give the names (NameOfTheSVGfile.svg) of the up to 10
different SVG files and the Stroke color in the beginning of the SLD which
will take a couple of minutes instead of sometimes hours if I have to edit
the whole SLD file.

As a SLD expert you should know it’s not possible to do what you ask
with just standard SLD.

GeoServer does not allow to do what you ask either, your best option is
to embed the name of the svg in your data as an attribute and then use
the “dynamic symbolizer” extension that is specific to GeoServer, see here:

http://blog.geoserver.org/2008/12/08/dynamic-symbolizers-part-1/

Or else, you can go through the proposal process in GeoTools and
add the functionality you want directly in the code, that’s how all
extensions to SLD we support are born.

Cheers
Andrea

Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf



BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts.
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Hi,

I´ve tried 4 days now (GS 2.1, 2.1.1 and OpenGeo GS 2.1-SNAPSHOT), but
Dynamic symbolizer just want work for me.

I made a new column in PostGIS which I called YMark500 and I used the
PostGIS SQL DEFAULT command.

to write the name of one .svg file:

from pgAdminIII: "YMark500" character varying DEFAULT
'YMark500_Lst_RI_Naturvard_Panda_URC_LimeGron_TEXT_ans110621.svg'::character
varying,

for each of the 2597 features in that table. I can se the .svg filenames in
the table.

I uploaded the .svg file to my homepage (www.gisassistans.se
<http://www.gisassistans.se/&gt; ) and the SLD is:

          <ogc:Filter>

            <ogc:PropertyIsBetween>

              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>

                <ogc:LowerBoundary>

                  <ogc:Literal>4.7</ogc:Literal>

                </ogc:LowerBoundary>

                <ogc:UpperBoundary>

                  <ogc:Literal>50000000</ogc:Literal>

                </ogc:UpperBoundary>

            </ogc:PropertyIsBetween>

          </ogc:Filter>

         <sld:MinScaleDenominator>3000.0</sld:MinScaleDenominator>

         <sld:MaxScaleDenominator>6000.0</sld:MaxScaleDenominator>

          <PolygonSymbolizer>

             <Fill>

                <GraphicFill>

                   <Graphic>

                    <ExternalGraphic>

                      <OnlineResource xlink:type="simple"
xlink:href="http://www.gisassistans.se/SVG/$\{YMark500\} />

                      <Format>image/svg+xml</Format>

                    </ExternalGraphic>

                    <Size>

                      <ogc:Literal>200</ogc:Literal>

                    </Size>

                   </Graphic>

                 </GraphicFill>

             </Fill>

I also tried with /${‘YMark500’} which PostGIS use “to like”.

With:

<OnlineResource xlink:type="simple"
xlink:href="'YMark500_Lst_RI_Naturvard_Panda_URC_LimeGron_TEXT_ans110621.svg
'” />

it works.

Hopefully someone finds out what I have done wrong :slight_smile: .

Regards Anders Söderman Stockholm Sweden

On Fri, Aug 19, 2011 at 6:56 PM, Anders Söderman
<Anders.Soderman@anonymised.com> wrote:

Hi,

I´ve tried 4 days now (GS 2.1, 2.1.1 and OpenGeo GS 2.1-SNAPSHOT), but
Dynamic symbolizer just want work for me.

I made a new column in PostGIS which I called YMark500 and I used the
PostGIS SQL DEFAULT command.

I have no idea, the default indeed fills the column with the values.
Maybe it's a server network issue?
Sometimes a machine inside of a network cannot access the public
name of the same server.
For example at home I have a public dns, but the provider set me up
so that the pcs inside my local network cannot access that domain name.
I believe that also happens in some DMZ setups

If that does not help please attach the full sld, the data and the wms
request that makes it fail to a bug report on jira.codehaus.org so
that a developer can try to reproduce the issue on a local machine

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------

-----Original Message-----
From: andrea.aime@anonymised.com [mailto:andrea.aime@anonymised.com] On Behalf Of
Andrea Aime
Sent: den 19 augusti 2011 21:54
To: Anders Söderman
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Dynamic symbolizer - the area patterning with
.svg symbols doesn´t work

On Fri, Aug 19, 2011 at 6:56 PM, Anders Söderman
<Anders.Soderman@anonymised.com> wrote:

Hi,
I´ve tried 4 days now (GS 2.1, 2.1.1 and OpenGeo GS 2.1-SNAPSHOT), but
Dynamic symbolizer just want work for me.
I made a new column in PostGIS which I called YMark500 and I used the
PostGIS SQL DEFAULT command.

I have no idea, the default indeed fills the column with the values.
Maybe it's a server network issue?
Sometimes a machine inside of a network cannot access the public
name of the same server.
For example at home I have a public dns, but the provider set me up
so that the pcs inside my local network cannot access that domain name.
I believe that also happens in some DMZ setups

If that does not help please attach the full sld, the data and the wms
request that makes it fail to a bug report on jira.codehaus.org so
that a developer can try to reproduce the issue on a local machine

Cheers
Andrea

Hello everybody.
Andrea, thanks for your answer which made me focus on my homepageserver and
PostGIS. My mistake was YMark500 in PostGIS and with ymark500 it works, but
only with .JPG files.
This works:
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="http://www.gisassistans.se/SVG/$\{pandajpg\}&quot; />
                      <Format>image/gif</Format>
                    </ExternalGraphic>
with panda.jpg as the attribute in PostGIS.

But this doesn´t work(I tested my own .SVG files and also GeoServers
burg02.svg):

          <ogc:Filter>
            <ogc:PropertyIsBetween>
              <ogc:PropertyName>yta_ha_ans</ogc:PropertyName>
                <ogc:LowerBoundary>
                  <ogc:Literal>4.7</ogc:Literal>
                </ogc:LowerBoundary>
                <ogc:UpperBoundary>
                  <ogc:Literal>50000000</ogc:Literal>
                </ogc:UpperBoundary>
            </ogc:PropertyIsBetween>
          </ogc:Filter>
         <sld:MinScaleDenominator>3000.0</sld:MinScaleDenominator>
         <sld:MaxScaleDenominator>6000.0</sld:MaxScaleDenominator>
          <PolygonSymbolizer>
             <Fill>
                <GraphicFill>
                   <Graphic>
                    <ExternalGraphic>
                      <OnlineResource xlink:type="simple"
xlink:href="http://www.gisassistans.se/SVG/$\{burg02svg\}&quot; />
                      <Format>image/svg+xml</Format>
                    </ExternalGraphic>
                    <Size>
                      <ogc:Literal>40</ogc:Literal>
                    </Size>
                   </Graphic>
                 </GraphicFill>
with burg02.svg as the attribute in PostGIS.

I use Inkscape to produce my SVG´s. Could it be a problem with my SVG 1.0
version in Dynamic symbolizer?
(i.e. Class SVGGraphicFactory
External graphic factory accepting an Expression that can be evaluated to a
URL pointing to a SVG file. The format must be image/svg+xml, thought for
backwards compatibility image/svg-xml and image/svg are accepted as well.)

I also tried image/svg-xml and image/svg in the SLD.

My Inkscape SVG-files always works in
(<OnlineResource xlink:type="simple" xlink:href="AnyFile.svg" />

It´s getting closer :slight_smile: , but my polygons still doesn´t show any SVG symbols
inside the polygon. The boarders of the polygons shows both in Layer Preview
and QGIS.

Any ideas out there ... Regards Anders Söderman Stockholm Sweden

On Sun, Aug 21, 2011 at 9:39 AM, Anders Söderman
<Anders.Soderman@anonymised.com> wrote:

Any ideas out there ... Regards Anders Söderman Stockholm Sweden

As I already said in my previous mail:

If that does not help please attach the full sld, the data and the wms
request that makes it fail to a bug report on jira.codehaus.org so
that a developer can try to reproduce the issue on a local machine

Cheers
Andrea

--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead

Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584 962313
fax: +39 0584 962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-------------------------------------------------------