Fast Point-Feature Label Placement Algorithm for Real Time Screen Maps
Missae YamamotoGilberto CamaraLuiz Antonio Nogueira Lorena
Schedule Definition
Label placement potential label positions cartographic preference
The combinatorial explosion of possible solutions
Conflict graph and adjacency matrix FALP - Fast Algorithm for Label Placement Results Sample of label placement for 1000 points Conclusion
Label placement (FONTE: Edmondson et. al. (1996, p. 14).
The label placement problem
We want our maps to be legible
Name placement can be one of the most time-consuming aspects of map production,
Names must not overlap
Names must be clearly associated with the features they annotate
A good map must be easily readable Source: ESRI
Why fast algorithms for label placement?
Web maps are very popular Map servers allow the user to combine
many layers Layers have text associated Unfeasible to pre-compute all label
arrangements
We need fast ways to generate good quality maps for web map servers
Source: Institute for Cartography and Geoinformation, University of Bonn
A set of potential label positions and their cartographic preference
(best = 1; worse = 4)
the combinatorial explosion of possible solutions
P1/L0 P1/L1
P2/L1P2/L0 P2/L0 P2/L1
P3/L1P3/L0P3/L1P3/L0
•
•
•
•
•
• •
•
•
•
•
• •
1 point2¹ configurations
2 points2² configurations
3 points2³ configurations
•
•
•
1000 points2¹ººº configurations
• •
L0 L1•
Two points – potential label positions and corresponding conflict graph
Candidate label positions Conflict graph (linked nodeshave conflicts)
A conflict graph as an adjacency matrix
Number of conflicts (node degree): L5 = 4
Fast Algorithm for Label Placement (FALP)
A fast algorithm for label placement
1. Create the conflict graph (done off-line).
2. Use the conflict graph to label as many points as possible.
3. Create a labeling for the remaining points
4. Use local search to improve map quality.
The maximum nonconflict labeling algorithm
(Uses the conflict graph to label as many points as possible.)
Example of label arrangement
Adjacency matrix for example
Label with least conflicts is L24Solution1 = {(P6, L24)}
Label with least conflicts is L02Solution 2 = {(P6, L24), (P1,
L02)}
Label with least conflicts is L05 Solution3 = {( P6, L24), (P1, L02),
(P2, L05)}
Two labels with 4 conflicts (L12 or L18)P3 = {L11, L12 } or P5 = {L18 , L19,
L20}?
We choose {P3, L12} since P3 has two possible label positions and P5 has
three
Label with least conflicts is L12Solution4 = {( P6, L24), (P1, L02), (P2,
L05), (P3, L12)}
Label with least conflicts is L15S= {( P6, L24), (P1, L02), (P2, L05), (P3,
L12), (P4, L15)}
Remaining label is L18 final solution S= {( P6, L24), (P1,
L02), (P2, L05), (P3, L12), (P4, L15), (P5,
L18)}
Processing labels with conflicts(Create a labeling for the
remaining points)
Processing of labels with conflicts
S* = {(P1, L02), (P2, L05), (P3, 0), (P4, L14), (P5, 0), (P6, L23)}
Point P3 has candidate labels L = {(L09, 1), (L10, 2), (L11, 1), (L12,0)}
S* = {(P1, L02), (P2, L05), (P3, L12), (P4, L14), (P5, 0), (P6, L23)}
Point P5 has candidate labels L= {(L17, 3), (L18, 1), (L19, 1), (L20, 2)}
S* = {(P1, L02), (P2, L05), (P3, L12), (P4, L14), (P5, L18), (P6, L23)}
Local search algorithm(Use local search to improve
map quality)
Local search algorithm
S* = {(P1, L02), (P2, L05), (P3, L12), (P4, L16), (P5, L18), (P6, L22)
P1 List = {(L01, 1), (L02, 0)}
S* = {(P1, L02), (P2, L05), (P3, L12), (P4, L16), (P5, L18), (P6, L22)}
P2 List = {(L05, 0)}
S* = {(P1, L02), (P2, L05), (P3, L12), (P4, L16), (P5, L18), (P6, L22)}
P3 List = {(L09, 1), (L10, 2), (L11, 2), (L12,1)}
S* = {(P1, L02), (P2, L05), (P3, L09), (P4, L16), (P5, L18), (P6, L22)}
Results
Standard sets of randomly generated points
conditions described by Christensen et al. (1995)
grid size of 792 by 612 units
fixed size label of 30 by 7 units
page size of 11 by 8.5 inch
Test set
Number of the points: N = 100, 250, 500, 750, 1000
Configurations: For each problem size, 25 different configurations with random placement of point features using different seeds;
4 label positions were considered for each point
Percentage of labels without conflict for different number of points
Computational times to reach the good solutions for different number of points (sec)
After FALP application for 1000 random points (labels without overlap = 911)
Conclusion
The FALP showed quality results in label placement and excellent runtime performance
We recommend to use FALP to solve point feature label placement for real time screen maps
Recommended