Label placement Rules, techniques
Labels on a map Text, name of map features No fixed geographical position Labels of point features (0-dim), line features (1-dim), areal features (2-dim)
Labels of point features Cities on a small-scale map Heights of peaks Measured values at measurement points
Labels of point features Touristic sights, campgrounds
Labels of line features Rivers Heights on contour lines Streets
Labels of line features
Labels of areal features Countries, oceans, forests, lakes
Labels of areal features
Three kinds of labels Utrecht Nieuwegein Houten Culemborg Straight, horizontal name Curved nameSpacing between characters
Label placement Where should the text be placed? Which shape? 20% - 50% of the manual map production time; can be automated Which rules do cartographers use? - No overlap readability - Clear for which feature association - Aesthetical guidelines
Example Eduard Imhof ( ) -Swiss Cartographer -“Positioning Names on Maps” (1962/1975) Rules according to Imhof
Problematic cases Problem visibility highway 20 Problem association Thunder Bay and point Problem readability name
Another problematic case University Ave. is interrupted 4 times
Specific rules point labels Label must be close to point, preferably to right and above Labels are placed horizontal, no extra spacing No overlap with other labels, except perhaps in the spacing of the areal label Label may intersect line feature; then line must be interrupted Points at a large body of water must have their label in the water. In other cases there may be no line between a point and its label If it cannot be avoided, a name may be split over two lines of text
Specific rules line labels Label must follow shape of river Label should not bend upwards and downwards consecutively At long line features the label must be repeated No or little extra spacing between characters, spacing between words of the label is allowed For vertical line features: upward reading direction left on the map and downward right on the map Contour lines: labels must interrupt contour line; top of label points to higher regions
Specific rules areal labels Horizontal labeling is good unless this conflicts with the dominant shape of the region Non-horizontal labels must be curved Monotonous curving; no inflection points Label should be spread over whole region Adjacent regions preferably have same shape of label (both horizontal, e.g.) Sometimes an areal label may be outside its region, but not in another labeled region Small areal features treated as point features
Strategies for automatic label placement Compute for each feature various candidate positions according to the rules Choose for each feature one candidate position, such that the chosen positions do not overlap Sometimes a feature cannot be labeled, and sometimes the label of a feature must be repeated
Candidate positions points Point labels 4-position model 8-position model slider model More general model more labels can be placed, but more complex/ expensive to compute
Candidate positions points Priority of point label positions Imhof Ebinger Jones Zoraster Yoeli, Hirsch
Candidate positions lines Compute strip with character height above the river which follows the shape approximately, but doesn’t have too high curvature (e.g. with opening, closure) Determine suitable segments in the strip as candidates
Candidate positions regions Determine skeleton (medial axis) of region (polygon) Determine longest path on skeleton as dominant shape Choose middle with suitable character spacing Vary a little for more candidates
Candidate positions regions, horizontal Choose spacing and determine length : height of label Compute largest scaled copy of the label (rectangle) that just fits inside the polygon Put the label in the correct font size in the middle of the scaled copy B e l g i ë
Removal part of the candidates Compute those candidate positions that intersect map features significantly, or would give unclear association, and remove them Nieuwegein poor good
Reasons for removal Utrecht Zeist Readability text Visibility features Association Utrecht poor good
Choosing from the candidates Translate to a graph problem (graph G): - each candidate position of each feature is a node in G - two nodes have an edge in G if their candidate positions intersect - two nodes have an edge in G if their candidate positions are of the same feature
Example Utrecht Bunnik
Computing intersecting candidates Each candidate is (approximately) a simple geometric shape Determine all pairs of intersecting candidates using a plane sweep algorithm O((n+k) log n) time, with k the number of intersecting pairs Typically: k = O(n)
Independent set: Set of vertices W with for all v, w W: {v,w} E. Maximum independent set problem: find largest independent set Clique: Set of vertices W with for all v, w W: {v,w} E. Independent Set Clique Graph problem: maximum independent set
Also called maximum stable set NP-hard problem: solving optimally is very time consuming Cannot be approximated with performance guarantees Many heuristics Independent Set
Heuristics for maximum independent set Select each candidate that is only adjacent to a clique, and remove the candidate and clique from the graph Repeat as long as possible (optimal selections)
Heuristics for maximum independent set Select each candidate that is only adjacent to a clique, and remove the candidate and clique from the graph Repeat as long as possible (optimal selections)
Heuristics for maximum independent set Select each candidate that is only adjacent to a clique, and remove the candidate and clique from the graph Repeat as long as possible (optimal selections)
Heuristics for maximum independent set Select each candidate that is only adjacent to a clique, and remove the candidate and clique from the graph Repeat as long as possible (optimal selections)
Heuristics for maximum independent set Select each candidate that is only adjacent to a clique, and remove the candidate and clique from the graph Repeat as long as possible (optimal selections) Utrecht Bunnik
Heuristics for maximum independent set Select each candidate that is only adjacent to a clique, and remove the candidate and clique from the graph Repeat as long as possible (optimal selections) Select candidate that intersects few other candidates Select candidate if a feature has only one (or a few) candidates left Eliminate candidates that intersect many candidates
Refinements Features and labels have different importances Candidates can have different priority translate problem to maximum weight independent set First place areal labels, then determine candidate point labels and select, then determine line labels and place them (order of decreasing freedom of placement)
Labels in GIS Can label positions be pre-computed and stored, for better efficiency? No, because –Which themes are shown is not known beforehand; –Which scale and size of the map is needed is not known beforehand
Labels on interactive maps Pop-up labels, or labels only after click During zooming in, remove labels when their feature goes outside the frame During zooming in, allow more and more labels; during zooming out, remove labels of less important features Size of labels does not change!
Labels on interactive maps
Commercial packages Maplex for ESRI’s ArcInfo and ArcGIS Label-EZ/MapText for ArcInfo, ArcGIS, MapInfo, GeoMedia, … EverName for MapInfo
Maplex: Label fitting & conflicts Label Fitting Strategies –Label Stacking –Font Reduction –Abbreviation Conflict Resolution –Feature Priority –Overlapping –Creating background labels –Remove duplicate
Maplex: Label position
Maplex: Label fitting Points
Maplex: Label fitting Lines
Maplex: Label fitting Area
Maplex: Conflict resolution
MapText/Label-EZ Configuration file Cartographic placement rules and preferences according to map type Label Fitting Strategies – Reduce font size – Place names with leaders – Use key numbers if no other possibility for overprint-free placement is possible.
MapText: Label Position
EverName: Label position
EverName: Output
Label Placement - Summary Cartographic rules for point features, line features, and areal features Strategies for automatic label placement –Compute Candidates –Select Candidates: Maximum independent Set Problem Commercial packages for label placement