B.Sc. Matej Gomboši Determining differences between two sets of polygons Laboratory for Geometric Modelling and Multimedia Algorithms Faculty of Electrical Engineering and Computer Science University of Maribor
Introduction Parcel records on paper - cadastre Computer supported cadastre Database changes Keeping database up-to-date Finding and analyzing changes Working with changes in geometry and attributes Lack of appropriate commercial solutions (ESRI, ArcView) Integrated solution for GIS environments
Introduction Difference ?
Formulation 1. Let P be a polygon made up of vertices v 1, v 2,..., v n and edges e 1, e 2,..., e n connecting them. 2. Let S be a set of polygons P 1, P 2,..., P n. Each P i can have arbitrary shape and number of vertices. 3. Find a set of polygons D, which represents the difference between S 1 and S 2. D contains changed polygons P 1, P 2,..., P m, which belong to S 1 or S 2.
Strategies Brute force approach Localized search approch Speed and stability considerations Separate aplications for different problems (need for integration)
Basic idea Comparison of S 1 and S 2 based on polygon edges Removing equal edges What remains represents changes Analyzing remaining edges
Polygon Sets of polygons from ESRI files (SHP) Organized data structures in memory Edge as main object “Work table” Uniform plane subdivision Binary search tree in cells Sorted edges Edge p 1,p 2 Polygon info Hole info Data objects
“Work table” binary search tree in each cell pointers to tree roots
Polygon edge information 1.Coordinates - p 1 (x 1,y 1 ), p 2 (x 2,y 2 ) 2.Polygon info polygon index set indicator (S1 or S2) index of the surrounding polygon Counter Hole info hole index (locally inside a polygon)
Edge clasification Counter values!
1.Acquiring polygon sets from ESRI database 2.Inserting edges into uniform plane subdivison 3.Updating already existing edges 4.Removing of equal edges 5.Analyzing remaining edges 6.Storing changes Algorithm
Finding differences (1)
Finding differences (2)
Problems at comparing attributes Non-simple polygon Contains regular(green) and non-regular(gray) holes Finding correct polygon index to compare attributes
Arithmetic problems Possible errors of overlaping edges Measuring error (+/- 12cm) Epsilon tolerance at comparing the vertices
Time complexity 1.Inserting edges O(n*log m) n – total num. of edges m – average num. of edges in a cell 2.Analyzing changes O(n*log m) n – number of cells m - average num. of edges in a cell
Practical results edges polygons changes 5 seconds with database access
Conclusions New efficient algorithm for specific geometric problem Works on large sets of polygons as found in GIS application Simple implementation Efficient use of known speed-up techniques Easy integration into other GIS environments (dll) Robust (no problems with geometric boundary cases) Succesfully used in practice