A logic programming approach to cartographic map overlay

Cartographic map overlay is the process of superimposing two maps into one to convey information in spatial correlation. A map refers to one in vector representation: a two‐dimensional spatial data structure of nodes, chains, and polygons. We present a map overlay system developed in Prolog. The system adopts a relational approach to data structuring. We represent geometric entities and their relationships as facts, and encode geometry algorithms in the rules. Set‐based operations perform data processing. To speed up the search for chain intersections, a uniform rectangular grid is imposed over the object space for spatial sorting by distribution. We sort out potentially intersecting edge segments to those occupying some common grid cell. Each bucket, if non‐empty, is implemented as a Prolog fact identifying the grid cell for random access. Geometric intersections are calculated using exact rational arithmetic implemented in Prolog. Numerical accuracy is preserved and we can identify all the special cases of tangent conditions. We can then guarantee topological consistency, and stability in the process of map overlay is therefore achieved.

[1]  Marvin White Part 4: Mathematical, Algorithmic and Data Structure Issues: Tribulations Of Automated Cartography And How Mathematics Helps , 1984 .

[2]  Franco P. Preparata,et al.  Plane-sweep algorithms for intersecting geometric figures , 1982, CACM.

[3]  Mohan S. Kankanhalli,et al.  Efficiency of Uniform Grids for Intersection Detection on Serial and Parallel Machines , 1988 .

[4]  Dana H. Ballard,et al.  Strip trees: a hierarchical representation for curves , 1981, CACM.

[5]  Thomas K. Peucker,et al.  A recursive procedure for finding the intersection of two digital curves , 1979 .

[6]  Jose Armando Guevara A framework for the analysis of geographic information system procedures: the polygon overlay problem, computational complexity and polyline intersection , 1983 .

[7]  Peter S.G. Swinson,et al.  Prolog: a prelude to a new generation of CAAD☆ , 1983 .

[8]  Michael A. Malcolm,et al.  Algorithms to reveal properties of floating-point arithmetic , 1972, CACM.

[9]  M. H. Williams,et al.  Evaluation of the Effectiveness of Prolog for a CAD Application , 1984, IEEE Computer Graphics and Applications.

[10]  Peter S.G. Swinson,et al.  Logic programming: a computing tool for the architect of the future , 1982 .

[11]  Michael Ian Shamos,et al.  Geometric intersection problems , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).

[12]  Warren Burton,et al.  Representation of many-sided polygons and polygonal lines for rapid processing , 1977, CACM.

[13]  Sumitro Samaddar,et al.  Prolog and Geometry Projects , 1986, IEEE Computer Graphics and Applications.

[14]  Ernesto Guerrieri,et al.  Octree Solid Modeling with Prolog , 1986 .

[15]  W. Morven Gentleman,et al.  More on algorithms that reveal properties of floating point arithmetic units , 1974, CACM.

[16]  Chris I. Yessios,et al.  An efficient algorithm for finding the union, intersection and differences of spatial domains , 1972 .

[17]  A. Robin Forrest Geometric computing environments: some tentative thoughts , 1988 .

[18]  A. R. Forrest Geometric Computing Environments , 1988 .