Map generalisation Reasons, measures, algorithms Cartographic generalisation • Changes that are necessary when reducing the map scale 1 : 50.000 1 : 25.000 1 : 50.000 enlarged elimination simplification point conversion (symbolisation) aggregation (of polygons) Reasons for generalization • Less crowdedness, distracting detail on the map • Improve visibility of objects that would become too small • Better visualisation through symbolisation • Moving to avoid visual collisions Framework (McMaster & Shea) • Discover the need for generalisation - local need (conflict) - global need: too many details, themes • Means: operators that change the map • Restrictions that prescribe what the operators may do • Algorithms for the operators Need for generalisation • • • • Imperceptibility (too small) Coalescence (visual collision, too close) Congestion (too crowded, too much detail) Consistency preservation Means: the operators • • • • • • Selection/elimination Displacement Shape change Aggregation Dissolution Reclassification • Typification • Exaggeration • Point, line, area conversion deciduous forest, coniferous forest forest Municipality boundaries province boundaries Operators: more examples Partial line conversion Exaggeration (enlargement) Point-to-area conversion Restricting conditions (measures) • • • • Minimum area (against imperceptibility) Minimum distance (against coalescence) Minimum `width’ (against self-coalescence) Maximum number of objects in some region (against congestion) • Preservation global shape, size, orientation, ... • Preservation relative crowdedness Restrictions: urban • Global shape • Global position • Orientation • Not: separate buildings, precise shape, size, position Some problems and conflicts • Aggregation can give new coalescence • Selection can disturb relative crowdedness Problems: four classes • Geometric: too small objects, too close • Topologic: self-intersection, wrong face • Semantic: river that flows hill up after generalisation contour lines and river • Gestalt (impression): map crowdedness too much dispersed Possible optimalisations of an operator • • • • • Smallest displacement Largest subset (selection; best represent.) Smallest subset (selection; least clutter) Smallest perimeter (shape change) Smallest area of symmetric difference (shape change, aggregation) • Smallest Hausdorff distance (shape change) Measures for imperceptibility, coalescence, self-coalescence Imperceptibility: area Coalescence: smallest distance Self-coalescence: small distance for points far apart on the line or curve. Possibilities e.g.: 1. Distance p,q < , distance on curve > 3 • d(p,q) 2. Each circle [center on curve] with radius 2x the line thickness is filled more than 70% Measure for congestion? • Influenced by line length, line style, color • Influenced by number and type of point symbols, color • Influenced by boundary length between region, color, contrast • Influenced by patterns, regularities Examples of generalisation methods • Settlement selection (Poiker, v. Oostrum et al.) • Road selection (Thompson & Richardson) • River selection (Strahler order) • Region selection (GAP tree) • Aggregation (via triangulations) • Shape change (natural objects, buildings) • Displacement (iterative using VD) Settlement selection • Keep big (important) cities • Keep cities if there is no city close by • Input: cities (points) with importance value Eight biggest: With spread model Settlement spacing ratio (Langran & Poiker ‘86) • Given a constant c, put circle with radius c/i with center on city with importance i • For each city, in decreasing importance order: - if its circle doesn’t contain a previously chosen city (point), then choose it Big city small circle good `chance’ to be selected City close to chosen (hence bigger) city circle can contain it city won’t be chosen Circle growth model (v. Kreveld, v. Oostrum, Snoeyink ‘97) • Determines choice order, not one selection • Desired number of cities can be specified • Settlement spacing model has no monotonocity. For smaller c: – in principle more cities are selected, but not always; – it can happen that a city that appears in a small selection doesn’t appear in a bigger one artifacts when zooming Circle growth model • Choose city with biggest importance i_max • Given a constant c, put circle with radius c i with center on city with importance i • Increase c and determine the city whose circle is covered last by the circle of the chosen city • Assign the chosen city an importance of i_max Circle growth model • Brute-force implementation: O( n³ ) time • By maintaining the nearest chosen city for each not chosen city: O( n² ) time • With Voronoi diagrams and maintaining nearest chosen city: O(n log n) typical – Voronoi diagram of chosen cities – Maintain heap on non-chosen cities in each Voronoi cell – Update structures when a next city is chosen Road selection • Which roads of a network can stay when generalizing? • Depends on classification road (highway, provincial road, local road, minor road) • Depends on importance of the connection • ... more criteria ... • Input: road network with classification, and important places (cities) Road selection approach à la Thomson & Richardson ‘95 • For each pair of important places, determine shortest/fastest route in whole network • Determine this way for each road segment how often it lies on a shortest/fastest route • Choose threshold and choose all road segments are used more often than the threshold on a shortest/fastest route Thomson & Richardson • No guarantees on imperceptibility, coalescence, congestion • Can be post-processed: - line simplification - line displacement - open up small loops - symbols for important junctions, roundabouts, intersections River selection • Of a river system with branches, determine relative importance • E.g. by the Strahler order Area selection • For a subdivision, determine order to merge regions into a neighboring region • GAP-tree approach (v. Oosterom ’94) (GAP = Generalized Area Partitioning) • Input: Subdivision and for each region its type and importance. Also: “removal function” F to choose best neighbor GAP-tree construction • Determine least important region a. • Determine neighboring areas b1, b2, … • Determine removal value F( type(a), type(bi), boundary length(a,bi)), for i = 1, 2, … • Node for a becomes child of node for bi for which F gives highest value (long boundary, types a and bi compatible) • Remove boundary between a and bi and adjust the importance of bi GAP-tree • Compatibility table needed for types: heath and forest fairly compatible, lake and industry not so • Importance can depend on type and size 2 2 1 1 2 1 3 Gras 1 road 1 Gras 2 Gras 3 road 2 Urban 1 lake forest 2 island forest1 corn Urban 2 Region aggregation à la Jones et al. ‘95 • Triangulate between objects to be aggregated • Aggregate if: - the distance is small over a stretch - it reduces total boundary length Region aggregation à la Jones et al. • More general: triangulate all and test where aggregation is good • Use constrained Delaunay triangulation Delaunay and Constrained Delaunay Triangulation • Delaunay: empty circle • Constrained Delaunay: empty circle but with given edges empty Needn’t be empty Constrained Delaunay Triangulation Constrained Delaunay Triangulation • Can be constructed in O(n log n) time (Chew, ’87) with sweep algorithm • Incremental also possible Usage: Places where aggregation is possible because objects are close enough and boundary length is reduced Aggregation buildings • Flatten triangles in between • Reorient buildings • Test for possible conflicts Area preservation and more or less shape preservation Area preservation and more generalization Shape change of natural objects • No restrictions on shape needed • Problem is self-coalescence, among which degree of detail Shape change natural objects • Using triangulations: constrained Delaunay • Add triangles to polygon or remove them if that “improves” the shape Shape change natural objects • Using morphologic operators: dilation, erosion, opening and closure Dilation: thicken with a disc Shape change natural objects • Dilation: thicken with disc, Minkowski sum • Erosion: make thinner by thickening outside with a disc, Minkowski subtraction • Opening: first erosion, then dilation (same radius circle) • Closure: first dilation, then erosion Ero(X) Ope(X) X Clo(X) Dil(X) Shape change natural objects • Dilation: removes detail but takes more space (on map) and can change topology (make holes) • Erosion: removes detail but can cause imperceptibility and change topology (make object disconnected) • Opening, closure: removes detail, but can change topology, and doesn’t always solve self-coalescence Shape change buildings • Requirement to preserve axis-parallelity and character Topo 1 : 25.000 Topo 1 : 50.000 Shape change buildings • For example by edge-shifts to eliminate short edges short edge short edge Displacement • Against coalescence: needed if objects are too close - buildings near buildings - buildings near roads • De-clustering too crowded regions at the cost of empty regions • Apply moderately to keep map impression, i.e., relative crowdedness • Risk of disturbing regularity, patterns Displacement: two approaches • Incremental approach: locate problems and solve one by one by displacement • Global approach: no order needed for solution, iterative de-clustering with Voronoi diagrams VD de-clustering: idea • Set P of points: – Compute VD of P (in a bounded region) – Move each point to the center of gravity of its Voronoi cel – Iterate (so: recompute VD, move, ...) VD de-clustering • Many iterations (too) even spread • Relative positions maintained more or less • Can be applied to buildings, intersections of roads, cities, ... Generalisation - conclusion • Difficult to automate problem • Many situations, conditions, possibilities, exceptions • Order for applying operators is partially unclear • Still an active research area