Consistent Labeling of Rotating Maps

Dynamic maps that allow continuous map rotations, e.g., on mobile devices, encounter new issues unseen in static map labeling before. We study the following dynamic map labeling problem: The input is a static, labeled map, i.e., a set P of points in the plane with attached non-overlapping horizontal rectangular labels. The goal is to find a consistent labeling of P under rotation that maximizes the number of visible labels for all rotation angles such that the labels remain horizontal while the map is rotated. A labeling is consistent if a single active interval of angles is selected for each label such that labels neither intersect each other nor occlude points in P at any rotation angle. We first introduce a general model for labeling rotating maps and derive basic geometric properties of consistent solutions. We show NP-completeness of the active interval maximization problem even for unit-square labels. We then present a constant-factor approximation for this problem based on line stabbing, and refine it further into an efficient polynomial-time approximation scheme (EPTAS). Finally, we extend the EPTAS to the more general setting of rectangular labels of bounded size and aspect ratio.


Introduction
Dynamic maps, in which the user can navigate continuously through space, are becoming increasingly important in scientific and commercial GIS applications as well as in personal mapping applications. In particular GPS-equipped mobile devices offer various new possibilities for interactive, location-aware maps. A common principle in dynamic maps is that users can pan, rotate, and zoom the map view. Despite the popularity of several commercial and free applications, relatively little attention has been paid to provably good labeling algorithms for dynamic maps.
Been et al. [2] identified a set of consistency desiderata for dynamic map labeling. Labels should neither "jump" (suddenly change position or size) nor "pop" (appear and disappear more than once) during monotonous map navigation; moreover, the labeling should be a function of the selected map viewport and not depend on the user's navigation history. Previous work on the topic has focused solely on supporting zooming and/or panning of the map [2,3,11], Supported by the Concept for the Future of KIT within the framework of the German Excellence Initiative. whereas consistent labeling under map rotations has not been considered prior to this paper.
Most maps come with a natural orientation (usually the northern direction facing upward), but applications such as car or pedestrian navigation often rotate the map view dynamically to be always forward facing [5]. Still, the labels must remain horizontally aligned for best readability regardless of the actual rotation angle of the map. A basic requirement in static and dynamic label placement is that labels are pairwise disjoint, i.e., in general not all labels can be placed simultaneously. For labeling point features, it is further required that each label, usually modeled as a rectangle, touches the labeled point on its boundary. It is often not allowed that labels occlude the input point of another label. Figure 1 shows an example of a map that is rotated and labeled. The objective in map labeling is usually to place as many labels as possible. Translating this into the context of rotating maps means that, integrated over one full rotation from 0 to 2π, we want to maximize the number of visible labels. The consistency requirements of Been et al. [2] can immediately be applied for rotating maps.
Our Results. Initially, we define a model for rotating maps and show some basic properties of the different types of conflicts that may arise during rotation. Next, we prove that consistently labeling rotating maps is NP-complete, for the maximization of the total number of visible labels in one full rotation and NPhard for the maximization of the visibility range of the least visible label. Finally, we present a new 1/4-approximation algorithm and an efficient polynomial-time approximation scheme (EPTAS) for unit-height rectangles. A PTAS is called efficient if its running time is O(f (ε)·poly(n)). Both algorithms can be extended to the case of rectangular labels with the property that the ratio of the smallest and largest width, the ratio of the smallest and largest height, as well as the aspect ratio of every label is bounded by a constant, even if we allow the anchor point of each label to be an arbitrary point of the label. This applies to most practical scenarios where labels typically consist of few and relatively short lines of text.
Related Work. Most previous algorithmic research efforts on automated label placement cover static labeling models for point, line, or area features. For static point labeling, fixed-position models and slider models have been introduced [4,8], in which the label, represented by its bounding box, needs to touch the labeled point along its boundary. The label number maximization problem is NP-hard even for the simplest labeling models, whereas there are efficient algorithms for the decision problem that asks whether all points can be labeled in some of the simpler models (see the discussion by Klau and Mutzel [7] or the comprehensive map labeling bibliography [14]). Approximation results [1,8], heuristics [13], and exact approaches [7] are known for many variants of the static label number maximization problem.
In recent years, dynamic map labeling has emerged as a new research topic that gives rise to many unsolved algorithmic problems. Petzold et al. [12] used a preprocessing step to generate a reactive conflict graph that represents possible label overlaps for maps of all scales. For any fixed scale and map region, their method computes a conflict-free labeling using heuristics. Mote [10] presents another fast heuristic method for dynamic conflict resolution in label placement that does not require preprocessing. The consistency desiderata of Been et al. [2] for dynamic labeling (no popping and jumping effects when panning and zooming), however, are not satisfied by either of the methods. Been et al. [3] showed NP-hardness of the label number maximization problem in the consistent labeling model and presented several approximation algorithms for the problem. Nöllenburg et al. [11] recently studied a dynamic version of the alternative boundary labeling model, in which labels are placed at the sides of the map and connected to their points by leaders. They presented an algorithm to precompute a data structure that represents an optimal one-sided labeling for all possible scales and thus allows continuous zooming and panning. None of the existing dynamic map labeling approaches supports map rotation.

Model
In this section we describe a general model for rotating maps with axis-aligned rectangular labels. Let M be a labeled input map, i.e., a set P = {p 1 , . . . , p n } of points in the plane together with a set L = { 1 , . . . , n } of pairwise disjoint, closed, and axis-aligned rectangular labels, where each point p i is a point on the boundary ∂ i of its label i . We say i is anchored at p i . As M is rotated, each label i in L remains horizontally aligned and anchored at p i . Thus, label intersections form and disappear during rotation of M . We take the following alternative perspective on the rotation of M . Rather than rotating the points, say clockwise, and keeping labels horizontal we may instead rotate each label around its anchor point counterclockwise and keep the set of points fixed. It is easy to see that both rotations are equivalent and yield exactly the same results.
A rotation of L is defined by a rotation angle α ∈ [0, 2π); a rotation labeling of M is a function φ : L×[0, 2π) → {0, 1} such that φ( , α) = 1 if label is visible or active in the rotation of L by α, and φ( , α) = 0 otherwise. We call a labeling φ valid if, for any rotation α, the set of labels L(α) = { ∈ L | φ( , α) = 1} consists of pairwise disjoint labels and no label in L(α) contains any point in P (other than its anchor point). We note that a valid labeling is not yet consistent in terms of the definition of Been et al. [2,3]: given fixed anchor points, labels clearly do not jump and the labeling is independent of the rotation history, but labels may still pop during a full rotation from 0 to 2π, i.e., appear and disappear more than once. In order to avoid popping effects, each label may be active only in a single contiguous range of [0, 2π), where ranges are circular ranges modulo 2π so that they may span the input rotation α = 0. A valid labeling φ, in which for every label the set A φ ( ) = {α ∈ [0, 2π) | φ( , α) = 1} is a contiguous range modulo 2π, is called a consistent labeling. For a consistent labeling φ the set A φ ( ) is called the active range of . The length |A φ ( )| of an active range A φ ( ) is defined as the length of the circular arc {(cos α, sin α) | α ∈ A φ ( )} on the unit circle.
The objective in static map labeling is usually to find a maximum subset of pairwise disjoint labels, i.e., to label as many points as possible. Generalizing this objective to rotating maps means that integrated over all rotations α ∈ [0, 2π) we want to display as many labels as possible. This corresponds to maximizing the sum ∈L |A φ ( )| over all consistent labelings φ of M ; we call this optimization problem MaxTotal. An alternative objective is to maximize over all consistent labelings φ the minimum length min |A φ ( )| of all active ranges; this problem is called MaxMin.

Properties of consistent labelings
In this section we show basic properties of consistent labelings. If two labels and intersect in a rotation of α they have a (regular) conflict at α, i.e., in a consistent labeling at most one of them can be active at α. The set C( , ) = {α ∈ [0, 2π) | and are in conflict at α} is called the conflict set of and .
We show the following lemma in a more general model, in which the anchor point p of a label can be any point within and not necessarily a point on the boundary ∂ . Lemma 1. For any two labels and with anchor points p ∈ and p ∈ the set C( , ) consists of at most four disjoint contiguous conflict ranges.
Proof. The first observation is that due to the simultaneous rotation of all initially axis-parallel labels in L, and remain "parallel" at any rotation angle α. Rotation is a continuous movement and hence any maximal contiguous conflict range in C( , ) must be a closed "interval" [α, β], where 0 ≤ α, β < 2π. Here we explicitly allow α > β by defining, in that case, [α, β] = [α, 2π) ∪ [0, β]. At a rotation of α (resp. β) the two labels and intersect only on their boundary. Let l, r, t, b be the left, right, top, and bottom sides of and let l , r , t , b be the left, right, top, and bottom sides of (defined at a rotation of 0). Since and are parallel, the only possible cases, in which they intersect on their boundary but not in their interior are t ∩ b , b ∩ t , l ∩ r , and r ∩ l . Each of those four cases may appear twice, once for each pair of opposite corners contained in the intersection. Figure 2 shows all eight boundary intersection events. Each of the conflicts defines a unique rotation angle and obviously at most four disjoint conflict ranges can be defined with these eight rotation angles as their endpoints. In the following we look more closely at the conditions under which the boundary intersection events (also called conflict events) occur and at the rotation angles defining them. Let h t and h b be the distances from p to t and b, respectively. Similarly, let w l and w b be the distances from p to l and r, respectively (see Figure 3). By h t , h b , w l , and w r we denote the corresponding values for label . Finally, let d be the distance of the two anchor points p and p . To improve readability of the following lemmas we define two functions f d (x) = arcsin(x/d) and g d (x) = arccos(x/d).

Lemma 2. Let and
be two labels anchored at points p and p . Then the conflict events in C( , ) are a subset of Proof. Assume without loss of generality that p and p lie on a horizontal line. First we show that the possible conflict events are precisely the rotation angles in C. We start considering the intersection of the two sides t and b . If there is a rotation angle under which t and b intersect then we have the situation depicted in Figure 4 and by simple trigonometric reasoning the two rotation angles at which the conflict events occur are 2π − arcsin((h t + h b )/d) and π + arcsin((h t + h b )/d). Obviously, we need d ≥ h t + h b . Furthermore, for the intersection in Figure 4a to be non-empty, we need d 2 ≤ (w r + w l ) 2 + (h t + h b ) 2 ; similarly, for the intersection in Figure 4b, we need From an analogous argument we obtain that the rotation angles under which b and t intersect are arcsin 2 for the second intersection to be non-empty under the above rotations.
The next case is the intersection of the two sides r and l , depicted in Figure 5. Here the two rotation angles at which the conflict events occur are 2π − arccos((w r + w l )/d) and arccos((w r + w l )/d). For the first conflict event we need For each of the intersections to be non-empty we additionally require that d ≥ w r + w l .
Similar reasoning for the final conflict events of l∩r yields the rotation angles π − arccos((w l + w r )/d) and π + arccos((w l + w r )/d). The additional constraints are d ≥ w l + w r for both events and d 2 ≤ (w l + w r ) 2 + (h b + h t ) 2 for the first intersection and d 2 ≤ (w l +w r ) 2 +(h t +h b ) 2 . Thus, C contains all possible conflict events. One of the requirements for a valid labeling is that no label may contain a point in P other than its anchor point. For each label this gives rise to a special class of conflict ranges, called hard conflict ranges, in which may never be active. The rotation angles at which hard conflicts start or end are called hard conflict events. Every angle that is a (hard) conflict event is called a label event.
Obviously, every hard conflict is also a regular conflict. Regular conflicts that are not hard conflicts are also called soft conflicts. We note that by definition regular conflicts are symmetric, i.e., C( , ) = C( , ), whereas hard conflicts are not symmetric. The next lemma characterizes the hard conflict ranges.
Proof. We define a label of width and height 0 for q, i.e., we set h t = h b = w l = w r = 0. Then the result follows immediately from Lemma 2.
A simple way to visualize conflict ranges and hard conflict ranges is to mark, for each label anchored at p and each of its (hard) conflict ranges, the circular arcs on the circle centered at p and enclosing . Figure 6 shows an example.
In the following we show that the MaxTotal problem can be discretized in the sense that there exists an optimal solution whose active ranges are defined as intervals whose borders are label events. An active range border of a label is an angle α that is characterized by the property that the labeling φ is not constant in any ε-neighborhood of α. We call an active range where both borders are label events a regular active range. Proof. Let φ be an optimal labeling with a minimum number of active range borders that are no label events. Assume that there is at least one active range border β that is no label event. Let α and γ be the two adjacent active range borders of β, i.e., α < β < γ, where α and γ are active range borders, but not necessarily label events. Then let L l be the set of labels whose active ranges have left border β and let L r be the set of labels whose active ranges have right border β. For φ to be optimal L l and L r must have the same cardinality since otherwise we could increase the active ranges of the larger set and decrease the active ranges of the smaller set by an ε > 0 and obtain a better labeling.
So define a new labeling φ that is equal to φ except for the labels in L l and L r : define the left border of the active ranges of all labels in L l and the right border of the active ranges of all labels in L r as γ instead of β. Since |L l | = |L r | we shrink and grow an equal number of active ranges by the same amount. Thus the two labelings φ and φ have the same objective value ∈L |A φ ( )| = ∈L |A φ ( )|. Because φ uses as active range borders one non-label event less than φ this number was not minimum in φ-a contradiction. As a consequence φ has only label events as active range borders.

Complexity
In this section we show that finding an optimal solution for MaxTotal (and also MaxMin) is NP-hard even if all labels are unit squares and their anchor points are their lower-left corners. We present a gadget proof reducing from the NP-complete problem planar 3-SAT [9]. Before constructing the gadgets, we show a special property of unit-square labels.
Lemma 5. If two unit-square labels and whose anchor points are their lower-left corners have a conflict at a rotation angle α, then they have conflicts at all angles α + i · π/2 for i ∈ Z.
Proof. Similar to the notation used in Section 3, let f d = arcsin(1/d) and g d = arccos(1/d). From Lemma 2 we obtain the set C = {2π−f d , π+f d , f d , π−f d , 2π− g d , g d , π − g d , π + g d } of conflict events for which it is necessary that the distance d between the two anchor points is 1 ≤ d ≤ √ 2. Since arccos x = π/2 − arcsin x the set C can be rewritten as This shows that conflicts repeat after every rotation of π/2.
For every label we define the outer circle of as the circle of radius √ 2 centered at the anchor point of . Since the top-right corner of traces the outer circle we will use the locus of that corner to visualize active ranges or conflict ranges on the outer circle. Note that due to the fact that at the initial rotation of 0 the diagonal from the anchor point to the top-right corner of forms an angle of π/4 all marked ranges are actually offset by π/4.

Basic Building Blocks
Chain. A chain consists of at least four labels anchored at collinear points that are evenly spaced with distance √ 2. Hence, each point is placed on the outer circles of its neighbors. We call the first and last two labels of a chain terminals  and the remaining part inner chain, see Figure 7a. We denote an assignment of active ranges to the labels as the state of the chain. The important observation is that in any optimal solution of MaxTotal an inner chain has only two different states, whereas terminals have multiple optimal states that are all equivalent for our purposes; see Figure 7a. In particular, in an optimal solution each label of an inner chain has an active range of length π and active ranges alternate between adjacent labels. We will use the two states of chains as a way to encode truth values in our reduction.

Lemma 6.
In any optimal solution, any label of an inner chain has an active range of length π. The active ranges of consecutive labels alternate between (0, π) and (π, 2π).
Proof. By construction every label has two hard conflicts at angles 0 and π, so no active range can have length larger than π. From Lemma 5 we know that every label has conflicts at π/2 and 3π/2. These conflicts are soft conflicts and can be resolved by either assigning all odd labels the active range (0, π) and all even labels the active range (π, 2π) or vice versa. Obviously both assignments are optimal and there is no optimal assignment in which two adjacent labels have active ranges on the same side of π.
For inner chains whose distance between two adjacent points is less than √ 2 the length of the conflict region changes, but the above arguments remain valid for any distance between 1 and √ 2.
Inverter. The second basic building block is an inverter. It consists of five collinear labels that are evenly spaced with distance 3/4 · √ 2 as depicted in Figure 7c. This means that the five labels together take up the same space as four labels in a usual inner chain. Similar to Lemma 6 the active ranges in an optimal solution also alternate. By replacing four labels of an inner chain with an inverter we can alter the parity of an inner chain.
Turn. The third building block is a turn that consists of four labels, see Figure 7b. The anchor points p a and p b are at distance √ 2 and the pairwise distances between p b , p c , and p d are also √ 2 such that the whole structure is symmetric with respect to the line through p a and p b . The central point p b is called turn point, and the two points p c and p d are called outgoing points. Due to the hard conflicts created by the four points we observe that the outer circle of p b is divided into two ranges of length 5π/6 and one range of length π/3. The outer circles of the outgoing points are divided into ranges of length π, 2π/3, and π/3. The outer circle of p a is divided into two ranges of length π. The outgoing points serve as connectors to terminals, inner chains, or further turns. Note, by coupling multiple turns we can divert an inner chain by any multiple of 30 • .

Lemma 7.
A turn has only two optimal states and allows to split an inner chain into two equivalent parts in an optimal solution.
Proof. We show that the optimal solution for the turn is 21/6π and that there are only two different active range assignments that yield this solution. Note that for the label a the length of its active range is at most π. For b it is at most 2/3π and for c and d it is at most π.
We first observe that c and d cannot both have an active range of length π since by Lemma 5 they have a soft conflict in the intersection of their lengthπ ranges. Thus at most one of them has an active range of length π and the other has an active range of length at most 5π/6. But in that case the same argumentation shows that the active range of b is at most π/2. Combined with an active range of length π for a this yields in total a sum of 20π/6.
On the other hand, if one of c and d is assigned an active range of length 2π/3 and the other an active range of length π as indicated in Figure 7b, the soft conflict of b in one of its ranges of length 5π/6 is resolved and b can be assigned an active range of maximum length. This also holds for a resulting in a total sum of 21π/6.
Since the gadget is symmetric there are only two states that produce an optimal solution for the lengths of the active ranges. By attaching inner chains to the two outgoing points the truth state of the inner chain to the left is transferred into both chains on the right.

Gadgets of the Reduction
Variable Gadget. The variable gadget consists of an alternating sequence of two building blocks: horizontal chains and literal readers. A literal reader is a structure that allows us to split the truth value of a variable into one part running towards a clause and the part that continues the variable gadget, see Figure 7d.  The literal reader consists of four turns, the first of which connects to a literal pipe and the other three are dummy turns needed to lead the variable gadget back to our grid. Note that some of the distances between anchor points in the literal reader need to be slightly less than √ 2 in order to reach a grid point at the end of the structure.
In order to encode truth values we define the state in which the first label of the first horizontal chain has active range (0, π) as true and the state with active range (π, 2π) as false.
Clause Gadget. The clause gadget consists of one inner and three outer labels, where the anchor points of the outer labels split the outer circle of the inner label into three equal parts of length 2π/3, see  labels are placed so that the outer circle of the outer label is split into two ranges of length 3π/4 and one range of length π/2.
The general idea behind the clause gadget is as follows. The inner label obviously cannot have an active range larger than 2π/3. Each outer label is placed in such a way that if it carries the value false it has a soft conflict with the inner label in one of the three possible active ranges of length 2π/3. Hence, if all three labels transmit the value false then every possible active range of the inner label of length 2π/3 is affected by a soft conflict. Consequently, its active range can be at most π/2.
On the other hand, if at least one of the pipes transmits true, the inner label can be assigned an active range of maximum length 2π/3.

Lemma 8.
There must be a label in a clause or in one of the incoming pipes with an active range of length at most π/2 if and only if all three literals of that clause evaluate to false.
Proof. The active range for the lower-right outer label that is equal to the state false is (3π/4, 3π/2). For the two other outer labels the active range corresponding to false is rotated by ±2/3π. Note that the outer clause labels can have an active range of at most 3/4π and the inner clause label can at most have an active range of at most 2/3π. For every literal that is false one of the possible active ranges of the inner clause label is split by a conflict into two parts of length π/2 and π/6. This conflict is either resolved by assigning an active range of length π/2 to the inner clause label or by propagating the conflict into the pipe or variable where it is eventually resolved by assigning some active range with length at most π/2.
Otherwise, if at least one pipe transmits true, the inner label of the clause can be active for 2π/3 while the outer clause labels have an active range of length 3π/4 and no chain or turn has a label that is visible for less than 2π/3.

Pipes.
Pipes propagate truth values of variable gadgets to clause gadgets. We use three different types of pipes, which we call left arm, middle arm, and right arm, depending on where the pipe attaches to the clause.
One end of each pipe attaches to a variable at the open outgoing label of a literal reader. Initially, the pipe leaves the variable gadget at an angle of 30 • . By using sequences of turns, we can route the pipes at any angle that is an integer multiple of 30 • . Thus we can make sure that for a clause above the variables the left arm enters the clause gadget at an angle of 150 • , the middle arm at an angle of 270 • , and the right arm at an angle of 30 • with respect to the positive x-axis. For clauses below the variables the pipes are mirrored.
In order to transmit the correct truth value into the clause we first need to place the literal reader such that the turn point of the first turn corresponds to an even position in the variable chain. Next, for a positive literal we need a pipe of even length, whereas for a negative literal the pipe must have odd length. Note that we can always achieve the correct parity by making use of the inverter gadgets.
Gadget Placement. We place all variable gadgets on the same y-coordinate such that each anchor point of variable labels (except for literal readers) lies on integer x-and y-coordinates with respect to a grid of width and height √ 2. Clause gadgets and pipes lie below and above the variables and form three-legged "combs". The overall structure of the gadget arrangement is sketched in Figure 10.
Proof. For a given planar 3-SAT formula ϕ we construct the MaxTotal instance as described above. For this instance we can compute the maximum possible sum K of active ranges assuming that each clause is satisfiable. By Lemma 8 every unsatisfied clause forces one label to have an active range of only π/2. Thus we know that ϕ is satisfiable if and only if the MaxTotal instance has a total active range sum of at least K. Constructing and placing the gadgets can be done in polynomial time and space.
Due to Lemma 4 we can discretize the MaxTotal problem. Thus we can construct an oracle that guesses an active range assignment, which we can verify in polynomial time. So MaxTotal is in N P.
We note that the same construction as for the NP-hardness of MaxTotal can also be applied to prove NP-hardness of MaxMin. The maximally achievable minimum length of an active range for a satisfiable formula is 2π/3, whereas for an unsatisfiable formula the maximally achievable minimum length is π/2 due to Lemma 8. This observation also yields that MaxMin cannot be efficiently approximated within a factor of 3/4.

Corollary 1.
MaxMin is NP-hard and it has no efficient approximation algorithm with an approximation factor larger than 3/4 unless P = N P.

Approximation Algorithms
In the previous section we have established that MaxTotal is NP-complete. Unless P = N P we cannot hope for an efficient exact algorithm to solve the problem. In the following we devise a 1/4-approximation algorithm for Max-Total and refine it to an EPTAS. For both algorithms we initially assume that labels are congruent unit-height rectangles with constant width w ≥ 1 and that the anchor points are the lower-left corners of the labels. Let d be the length of the label's diagonal, i.e., d = √ w 2 + 1. Before we describe the algorithms we state four important properties that apply even to the more general labeling model, where anchor points are arbitrary points within the label or on its boundary, and where the ratio of the smallest and largest width and height, as well as the aspect ratio are bounded by constants: (i) the number of anchor points contained in a rectangle is proportional to its area, (ii) the number of conflicts a label can have with other labels is bounded by a constant, (iii) any two conflicting labels produce only O(1) conflict regions, and finally, (iv) there is an optimal MaxTotal solution where the borders of all active ranges are events.
Properties (i) and (ii) are proved in Lemmas 9 and 10 using a simple packing argument. Property (iii) follows from property (ii) and Lemma 1. Property (iv) follows immediately from Lemma 4. Proof. Recall that by assumption all labels in the initial labeled map M are visible. Let the smallest label height be h min , the smallest label width be w min and the smallest label area be a min . There can be at most 2W/w min + 2H/h min independent labels intersecting the boundary of R such that their anchor points are contained in R. All remaining labels with an anchor point in R must be completely contained in R, i.e., there can be at most W · H/a min such labels. Hence, the number of anchor points in R is bounded by a constant.
Lemma 10. Each label has conflicts with at most a constant number of other labels.
Proof. For two labels and to have a conflict their outer circles need to intersect and thus the maximum possible distance between their anchor points is bounded by twice the maximum diameter of all labels in L. By the assumption that the height ratio, width ratio, and aspect ratio of all labels in L is bounded by a constant this diameter is constant. Hence we can define for each label a constant size area around its anchor point containing all relevant anchor points. By Lemma 9 this area contains only a constant number of anchor points.

A 1/4-approximation for MaxTotal
The basis for our algorithm is the line stabbing or shifting technique by Hochbaum and Maass [6], which has been applied before to static labeling problems for (non-rotating) unit-height labels [1,8]. Consider a grid G where each grid cell is a square with side length 2d. We can address every grid cell by its row and column index. Now we can partition G into four subsets by deleting every other row and every other column with either even or odd parity. Within each of these subsets we have the property that any two grid cells have a distance of at least 2d. Thus no two labels whose anchor points lie in different cells of the same subset can have a conflict. We say that a grid cell c covers a label if the anchor point of lies inside c. By Lemma 9 only O(1) labels are covered by a single grid cell. Combining this with Lemma 10 we see that the number of conflicts of the labels covered by a single grid cell is constant. This implies that the number of events in that cell (cf. Lemma 4) is also constant.
The four different subsets of grid cells divide a MaxTotal instance into four subinstances, each of which decomposes into independent grid cells. If we solve all subsets optimally, at least one of the solutions is a 1/4-approximation for the initial instance due to the pigeon-hole principle.
Determining an optimal solution for the labels covered by a grid cell c works as follows. We compute, for the set of labels L c ⊆ L covered by c, the set E c of label events. Due to Lemma 4 we know that there exists an optimal solution where all borders of active ranges are label events. Thus, to compute an optimal active range assignment for the labels in L c we need to test all possible combinations of active ranges for all labels ∈ L c . For a single cell this requires only constant time.
We can precompute the non-empty grid cells by simple arithmetic operations on the coordinates of the anchor points and store those cells in a binary search tree. Since we have n anchor points there are at most n non-empty grid cells in the tree, and each of the cells holds a list of the covered anchor points. Building this data structure takes O(n log n) time and then optimally solving the active range assignment problem in the non-empty cells takes O(n) time.
Theorem 2. There exists an O(n log n)-time algorithm that yields a 1/4-approximation of MaxTotal for congruent unit-height rectangles with their lower-left corners as anchor points.

An Efficient Polynomial-Time Approximation Scheme for MaxTotal
We extend the technique for the 1/4-approximation to achieve a (1 − ε)-approximation. Let again G be a grid whose grid cells are squares of side length 2d. For any integer k we can remove every k-th row and every k-th column of the grid cells, starting at two offsets i and j (0 ≤ i, j ≤ k − 1). This yields collections of meta cells of side length (k − 1) · 2d that are pairwise separated by a distance of at least 2d and thus independent. In total, we obtain k 2 such collections of meta cells.
For a given ε ∈ (0, 1) we set k = 2/ε . Let c be a meta cell for the given k and let again L c be the set of labels covered by c, and E c the set of label events for L c . Then, by Lemmas 9 and 10, both |L c | and |E c | are O(1/ε 2 ). Since we need to test all possible active ranges for all labels in L c , it takes O(2 O(1/ε 2 log 1/ε 2 ) ) time to determine an optimal solution for the meta cell c.
For a given collection of disjoint meta cells we determine (as in Section 5.1) all O(n) non-empty meta cells and store them in a binary search tree such that each cell holds a list of its covered anchor points. This requires again O(n log n) time. So for one collection of meta cells the time complexity for finding an optimal solution is O(n2 O(1/ε 2 log 1/ε 2 ) + n log n). There are k 2 such collections and, by the pigeon hole principle, the optimal solution for at least one of them is a (1 − ε)-approximation of the original instance. This yields the following theorem.
We note that this EPTAS basically relies on properties (i)-(iv) and that there is nothing special about congruent rectangles anchored at their lower-left corners. Hence we can generalize the algorithm to the more general labeling model, in which the ratio of the label heights, the ratio of the label widths, and the aspect ratios of all labels are bounded by constants. Furthermore, the anchor points are not required to be label corners; rather they can be any point on the boundary or in the interior of the labels. Finally, we can even ignore the distinction between hard and soft conflicts, i.e., allow that anchor points of nonactive labels are occluded. Properties (i)-(iv) still hold in this general model. The only change in the EPTAS is to set the width and height of the grid cells to twice the maximum diameter of all labels in L.

Corollary 2.
There exists an EPTAS that computes a (1 − ε)-approximation of MaxTotal in the general labeling model with rectangular labels of bounded height ratio, width ratio, and aspect ratio, where the anchor point of each label is an arbitrary point in that label. The time complexity of the EPTAS is O((n2 O(1/ε 2 log 1/ε 2 ) + n log n)/ε 2 ).

Conclusion
We have introduced a new model for consistent labeling of rotating maps and proved NP-hardness of the active range maximization problem. We could, however, show that there is an EPTAS for the MaxTotal problem that works for rectangular labels with arbitrary anchor points and bounded height ratio, width ratio, and aspect ratio. An interesting open question and an important challenge in practice is to combine map rotation with zooming and panning and study the arising algorithmic labeling problems.