[mapserver-dev] Rendering Railroads is slow

Thomas Bonfort thomas.bonfort at camptocamp.com
Fri May 15 02:38:36 EDT 2009


Steve,

I think that the whole "symbol along line" rendering is slow by
nature, as you have to draw a symbol multiple times for each feature.
If you don't need the symbol to follow line orientation (which is not
the case for railroads), a pixmap symbol might help as rendering that
is quite fast. Not sure you'd be getting much better results is the
symbol has to be rotated as you have to apply bilinear filtering to
the image when applying the rotation; in any case, you'd be cutting
down on quality for sure as rotated pixmaps tend to get blurry rather
quickly.

Changing symbology might help, by rendering railroads as dashes
instead of ties, but that's a matter of taste and what you want your
final map to look like.

regards,

thomas

www.camptocamp.com
+33 4 79 26 57 97



On Wed, May 13, 2009 at 06:30, Stephen Woodbridge
<woodbri at swoodbridge.com> wrote:
> Hi Thomas,
>
> I've been playing with your osm style map and I have noticed the rendering
> railroads tends to be very slow. This is with single line and cross ties or
> with double rail and cross ties.
>
> I realize that part of this is probably because there is much more detail
> involved than rendering other objects, but ...
>
> Any thoughts on how to speed this up. Unfortunately there are not any
> attributes the would allow me to thin the data as I zoom out. One thought I
> had was to add a length attribute and try filtering out very short segments,
> but this runs the risk of gaps. I'll try doubling the gap to cut down on the
> number of cross ties and see how that looks.
>
> Any other thoughts?
>
> Thanks,
>  -Steve W
>
> 25K scale:
>
>  LAYER
>    NAME "RailRoads Z2"
>    GROUP "rr"
>    STATUS DEFAULT
>    DATA "NA/RailRds"
>    TYPE LINE
>    ##LABELITEM "NAME"
>    MAXSCALE 25100.0
>    MINSCALE 10100.0
>    TRANSPARENCY ALPHA
>    CLASS
>      NAME "Railroads"
> ##      STYLE
> ##        COLOR _white_clr
> ##        WIDTH 2
> ##        OUTLINECOLOR _rail_clr
> ##        OUTLINEWIDTH 1
> ##      END
>      STYLE
>        COLOR _rail_clr
>        WIDTH 4
> ##        ANTIALIAS TRUE
>      END
>      STYLE
>        COLOR _white_clr
>        WIDTH 2
> ##        ANTIALIAS TRUE
>      END
>      STYLE
>        SYMBOL 'railway6'
>        COLOR _rail_clr
>        SIZE 6
>      END
>    END
>  END
>
>
> [Wed May 13 00:07:29 2009].929243 msDrawMap(): Layer 0 (World), 0.005s
> [Wed May 13 00:07:29 2009].931190 msDrawMap(): Layer 2 (CountryZ2), 0.002s
> [Wed May 13 00:07:29 2009].932168 msDrawMap(): Layer 4 (Urban Areas Z2),
> 0.001s
> [Wed May 13 00:07:29 2009].933675 msDrawMap(): Layer 5 (Land Use A), 0.001s
> [Wed May 13 00:07:29 2009].933923 msDrawMap(): Layer 6 (Land Use B), 0.000s
> [Wed May 13 00:07:29 2009].934913 msDrawMap(): Layer 7 (Province), 0.001s
> [Wed May 13 00:07:29 2009].935931 msDrawMap(): Layer 8 (Water p), 0.001s
> [Wed May 13 00:07:29 2009].936762 msDrawMap(): Layer 9 (Municipality),
> 0.001s
> [Wed May 13 00:07:29 2009].936919 msDrawMap(): Layer 10 (Linear Water),
> 0.000s
> [Wed May 13 00:07:30 2009].773755 msDrawMap(): Layer 12 (RailRoads Z2),
> 0.837s
> [Wed May 13 00:07:30 2009].866461 msDrawMap(): Layer 16 (tunnels-close),
> 0.093s
> [Wed May 13 00:07:31 2009].200775 msDrawMap(): Layer 17 (streets-close),
> 0.334s
> [Wed May 13 00:07:31 2009].309649 msDrawMap(): Layer 18 (highways-close),
> 0.109s
> [Wed May 13 00:07:31 2009].309785 msDrawMap(): Layer 19 (copyright), 0.000s
> [Wed May 13 00:07:31 2009].309810 msDrawLabelCache():
> labelcache_map_edge_buffer = -10
> [Wed May 13 00:07:32 2009].410001 msDrawMap(): Drawing Label Cache, 1.100s
> [Wed May 13 00:07:32 2009].410053 msDrawMap() total time: 2.488s
> [Wed May 13 00:07:32 2009].589924 msSaveImage() total time: 0.180s
> [Wed May 13 00:07:32 2009].590427 mapserv request processing time (loadmap
> not incl.): 2.668s
>
> 250K scale:
>
>  SYMBOL
>    NAME "railway6"
>    TYPE truetype
>    FONT arial
>    CHARACTER "|"
>    GAP -6
>  END
>
>
>  LAYER
>    NAME "RailRoads Z1"
>    GROUP "rr"
>    STATUS DEFAULT
>    DATA "NA/RailRds"
>    TYPE LINE
>    MAXSCALE  500100.0
>    MINSCALE   25100.0
>    TRANSPARENCY ALPHA
>    CLASS
>      NAME "Railroads"
>      STYLE
>        COLOR _dark_gray_clr
>        WIDTH 1
> ##        ANTIALIAS TRUE
>      END
>      STYLE
>        SYMBOL 'railway6'
>        COLOR _dark_gray_clr
>        SIZE 5
>      END
>    END
>  END
>
>
> [Wed May 13 00:03:27 2009].45043 msDrawMap(): Layer 0 (World), 0.006s
> [Wed May 13 00:03:27 2009].47580 msDrawMap(): Layer 2 (CountryZ2), 0.002s
> [Wed May 13 00:03:27 2009].48592 msDrawMap(): Layer 4 (Urban Areas Z2),
> 0.001s
> [Wed May 13 00:03:27 2009].58275 msDrawMap(): Layer 5 (Land Use A), 0.010s
> [Wed May 13 00:03:27 2009].60404 msDrawMap(): Layer 6 (Land Use B), 0.002s
> [Wed May 13 00:03:27 2009].61885 msDrawMap(): Layer 7 (Province), 0.001s
> [Wed May 13 00:03:27 2009].66543 msDrawMap(): Layer 8 (Water p), 0.005s
> [Wed May 13 00:03:27 2009].86803 msDrawMap(): Layer 9 (Municipality), 0.020s
> [Wed May 13 00:03:27 2009].87221 msDrawMap(): Layer 10 (Linear Water),
> 0.000s
> [Wed May 13 00:03:29 2009].919242 msDrawMap(): Layer 11 (RailRoads Z1),
> 2.832s
> [Wed May 13 00:03:30 2009].357593 msDrawMap(): Layer 14 (highways-far),
> 0.438s
> [Wed May 13 00:03:30 2009].460126 msDrawMap(): Layer 15 (highways-far),
> 0.102s
> [Wed May 13 00:03:30 2009].460882 msDrawMap(): Layer 19 (copyright), 0.001s
> [Wed May 13 00:03:30 2009].460920 msDrawLabelCache():
> labelcache_map_edge_buffer = -10
> [Wed May 13 00:03:31 2009].372635 msDrawMap(): Drawing Label Cache, 0.912s
> [Wed May 13 00:03:31 2009].372693 msDrawMap() total time: 4.336s
> [Wed May 13 00:03:31 2009].887170 msSaveImage() total time: 0.514s
> [Wed May 13 00:03:31 2009].887664 mapserv request processing time (loadmap
> not incl.): 4.851s
> _______________________________________________
> mapserver-dev mailing list
> mapserver-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>


More information about the mapserver-dev mailing list