dynamic one-sided boundary labeling
In boundary labeling, features on a map are connected to a stack of labels on the map boundary, using simple polylines called leaders . We consider the setting that the labels are axis-aligned non-overlapping rectangles placed on one side of the map, and leaders are rectilinear polylines with at most one bend. The goal is to find a labeling that minimizes the total length of the leaders. We introduce three extensions of the one-sided boundary labeling problem: (i) a dynamic setting for continuous scale changes, (ii) a clustered setting for multiple label stacks, and (iii) a combined dynamic clustered setting. We obtain the following results:  Optimal label placement as a function of map scale can be computed in O ( n log n + ? log n ) time, where ? is the number of "combinatorially different" labelings that occur during zooming.  In a map with fixed scale, an optimal clustered label placement can be found in O ( n log n ) time.  In O ( n log 2 n + ? log n ) time one can build a structure of size O (?) representing the optimal clustered label placement for all possible map scales; here ? is, again, the number of combinatorially different labelings. We further extend our basic model to the case where labeled features enter or leave the viewport due to map panning and zooming. Our algorithms are based on combining standard computational-geometry tools and have been implemented in a Java applet (available online), which indicates that the algorithms are fast enough for interactive use without delays.
map labeling continuous viewport changes