[mapserver-dev] Potential GSoC idea was: (Fwd: Re: [mapserver-users] force labels to fit in polygons)

Stephen Woodbridge woodbri at swoodbridge.com
Mon Mar 5 17:31:36 EST 2012


An interesting potential GSoC project might be something along the line 
of offline label placement optimization. An idea would be to take a 
mapfile and zoom scale then compute the potential label points, bboxs, 
placement options and analyze them for optimal placement and then to 
create a label layer for that scale. To make the task scalable, it could 
be done in tiles.

Anyway, there are probably plenty of scholarly papers on the subject.
https://www.google.com/#q=optimal+label+placement+maps

So my thought is that while the problem is NP hard like TSP, that there 
are good general solutions to TSP that do not provide the best result 
but are provide good results in fast times. One of these algorithms is 
simulated annealing. This works by taking a initial solution, then 
looking for collisions and changing the label point associated with the 
colliding labels. It them scores the solution, makes some random changes 
cleans up the collisions again and compares the new score to the 
previous iteration and if it is better keeps it, and repeats if it is 
worse it resets back to the better solution and does another iteration. 
It does this for some N iterations or until it can not improve on the 
solution.

Interestingly, this [1] paper discusses simulated annealing as part of a 
solution.

Regardless, something like this might be an interesting GSoC project. It 
might be fast enough to run in mapserver may as part of mapcache when 
rendering tiles.

Just an idea,
   -Steve

[1] http://www.eecs.harvard.edu/shieber/Biblio/Papers/tog-final.pdf

-------- Original Message --------
Subject: Re: [mapserver-users] force labels to fit in polygons
Date: Mon, 05 Mar 2012 16:50:42 -0500
From: Stephen Woodbridge <woodbri at swoodbridge.com>
To: mapserver-users at lists.osgeo.org

On 3/5/2012 4:44 PM, Mark Volz wrote:
> Hello,
> Is there a way to force labels to fit inside of a polygon, even if a
> polygon is irregularly shaped? I noticed that with POSITION AUTO labels
> are falling outside of my soils boundary.

The short answer is no. It is an interesting problem, but it does not
have a guaranteed result as the label might be too big to fit
regardless. I am not even sure of the algorithm should be for something
like this. There are a lot of parameters like:

font
font size
wrapping the text
changing the angle
finding the longest line, arc or smooth polyline that fits withing the
polygon and then have the text follow that line

These are all computationally expensive to do on the fly while
rendering. Ideally these should be worked out in advance then you can
supply the attributes to the label via binding columns in the data.

-SteveW
_______________________________________________
mapserver-users mailing list
mapserver-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users


More information about the mapserver-dev mailing list