Abstract
3D topological relations are commonly used for testing or imposing the existence of desired properties between objects of a dataset, such as a city model. Currently available GIS systems usually provide a limited 3D support which usually includes a set of 3D spatial data types together with few operations and predicates, while limited or no support is generally provided for 3D topological relations. Therefore, an important problem to face is how such relations can be actually implemented by using the constructs already provided by the available systems. In this paper, we introduce a generic 3D vector model which includes an abstract and formal description of the 3D spatial data types and of the related basic operations and predicates that are commonly provided by GIS systems. Based on this model, we formally demonstrate how these limited sets of operations and predicates can be combined with 2D topological relations for implementing 3D topological relations.
Similar content being viewed by others
References
Belussi A, Migliorini S, Negri M (2019) https://github.com/smigliorini/spatialdbgroup Last accessed Dec. 2019
Belussi A, Migliorini S, Negri M, Pelagatti G A template-based approach for the specification of 3D topological constraints. GeoInformatica. https://doi.org/10.1007/s10707-020-00401-2
Belussi A, Migliorini S, Negri M, Pelagatti G (2015) Validation of spatial integrity constraints in city models. In: Proc. of the 4th ACM SIGSPATIAL int. workshop on mobile geographic information systems, MobiGIS ’15, pp 70–79
Bieri H (1995) Nef polyhedra: A brief introduction. Comput Suppl 10:43–60
Egenhofer M J (1995) Topological relations in 3D. Tech. rep., University of Maine USA
Egenhofer M J, Franzosa R (1991) Point-set topological spatial relations. Int J Geograph Inf Syst 2(5):161–174
Hachenberger P, Kettner L, Mehlhorn K (2007) Boolean operations on 3D selective Nef complexes: Data structure, algorithms, optimized implementation and experiments. Comput Geom 38(1–2):64–99
Open Geospatial Consortium Inc.: OpenGIS Implementation Standard for Geographic Information - Simple feature access - Part 1: Common architecture (2011). Version 1.2.1 http://www.opengeospatial.org/standards/sfa
Open Geospatial Consortium Inc.: OGC City Geography Markup Language (CityGML) Encoding Standard (2012). Version 2.0 http://www.opengeospatial.org/standards/citygml
ISO: ISO 19107 Geographic Information – Spatial Schema (2003). http://www.iso.org/iso/catalogue_detail.htm?csnumber=26012
ISO: ISO 19125 Geographic Information – Simple Feature Access – Part 1: Common architecture (2004). https://www.iso.org/standard/40114.html
ISO: Geographic information – Geography Markup Language (GML) (ISO 19136:2007 (2007). http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=32554
Khuan C, Abdul-Rahman A, Zlatanova S (2008) 3D Solids and Their Management in DBMS. In: Advances in 3D geoinformation systems. Springer, Berlin, pp 279–311
Ledoux H (2013) On the validation of solids represented with the international standards for geographic information. Comput-Aided Civil Infrastruct Eng 28(9):693–706
Migliorini S (2018) Enhancing CIDOC-CRM models for geosparql processing with mapreduce. In: Proceedings of 2nd Workshop on Computing Techniques for Spatio-Temporal Data in Archaeology And Cultural Heritage, pp 45–59. http://coarch18.di.univr.it/wp-content/uploads/2018/02/paper_03.pdf
Migliorini S, Belussi A, Negri M, Pelagatti G (2016) Towards massive spatial data validation with SpatialHadoop. In: Proceedings of the 5th ACM SIGSPATIAL international workshop on analytics for big geospatial data, BigSpatial’16, pp 18–27
OSGeo: PostGIS 3.0 Manual. Open Source Geospatial Foundation (2019). https://postgis.net/stuff/postgis-3.0.pdf
Pelagatti G, Negri M, Belussi A, Migliorini S (2009) From the conceptual design of spatial constraints to their implementation in real systems. In: 17th ACM SIGSPATIAL int. conf. on advances in geographic information systems, pp 448–451
Tet-Khuan C, Abdul-Rahman A, Zlatanova S (2007) 3D spatial operations in geo DBMS environment for 3D GIS. In: Gervasi O, Gavrilova ML (eds) Computational science and its applications – ICCSA 2007, pp 151–163
Wagner D, Wewetzer M, Bogdahn J, Alam N, Pries M, Coors V (2013) Geometric-semantical consistency validation of cityGML models. In: Progress and new trends in 3d geoinformation sciences, pp 171–192
Woo T C, Thomasma T (1984) An algorithm for generating solid elements in objects with holes. Comput Struct 18(2):333–342
Xu D (2011) Design and implementation of constraints for 3D spatial database: Using climate city campus database as an example. OTB Research Institute for the Built Environment, Master’s thesis
Xu D, van Oosterom P, Zlatanova S (2016) A methodology for modelling of 3D spatial constraints. In: Advances in 3D Geoinformation, pp 95–117
Xu D, Zlatanova S (2013) An approach to develop 3D geo-DBMS topological operators by re-using existing 2D operators. ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences II-2/W1, pp 291–298
Zlatanova S (2000) On 3D topological relationships. In: 11th International Workshop on Database and Expert Systems Applications, 2000. Proceedings, pp. 913–919
Zlatanova S, Shi W (2004) Topological models and frameworks for 3D, spatial objects. Comput Geosci 30(4):419–428
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix
Appendix
1.1 A Proofs of the Test Implementations
This section reports the detailed proofs for Propositions 8–11 in Section 6.
1.2 Proof for Proposition 8 (IT∘∂)
The proof shows that each specialization of the intersection test (IT∘∂) reported in Table 6 covers all the possible scenarios between A and B. The complete enumeration of all scenarios is obtained as in Proposition 7 in Section 6.
-
\(\textit {IT}^{\ \circ \partial }_{cv,cv}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g2 intersects g1; sufficient conditions for obtaining this result are produced in the following scenarios of Table 3: cells (1,1), (2,1) and (3,2). Scenario (3,4) is already considered by cell (1,1). In the proposed test (1st row of Table 6) scenarios (1,1) and (2,1) are covered by formula at line 1, while scenario (3,2) is covered by formula at line 2.
-
all other tests can be converted in a test \(\textit {IT}^{\ \circ \circ }_{*,*}()\) as shown in Table 6. This can also be done because the boundary of a surface or a solid is always a cycle, i.e. it has an empty boundary.
1.3 Proof for Proposition 9 (IT∘−)
The proof shows that each specialization of the intersection test IT∘− covers all the possible scenarios between A and B. The complete enumeration of all scenarios is obtained as explained in Proposition 7 in Section 6.
-
\(\textit {IT}^{\ \circ -}_{cv,cv}(g_{1}, g_{2})\) is true if at least one internal vertex or segment of g1 intersects the exterior of g2; sufficient conditions for obtaining this result are produced in the following cases of Table 3: (i) when it exists at least one internal vertex of g1 for which the scenarios of cells (4,1) and (5,2) do not occur; (ii) when it exists at least a segment of g1 such that for all segments of g2 scenarios of cells (6,1) and (6, 2)(IN) do not occur.
In the proposed test (1st row of Table 7) the first case involving scenarios (4,1) and (5,2) is covered by formula at lines 1-2, while the second one involving scenarios (6,1) and (6,2) is covered by formula at line 3.
-
\(\textit {IT}^{\ \circ -}_{cv,s\!f}(g_{1}, g_{2})\) is true if at least one internal vertex or segment of g1 intersects the exterior of g2; sufficient conditions for obtaining this result are produced in the following cases of Table 4: (i) when it exists at least one internal vertex of g1 for which all the scenarios of cells (1,1), (2,1), (3,2), (3,4), (4,2), (4,4), (5,2) and (5,4) do not occur; (ii) when it exists at least a segment of g1 such that for all segments and patches of g2 scenarios of cells (8,1), (8,2), (9,1), (9,2) and (10,2) do not occur.
In the proposed test (2nd row of Table 7) the first case regarding cells (1,1), (2,1), (3,4), (4,4) and (5,4), is covered by the formula at line 1, regarding cells (3,2) and (4,2), by the formula at line 2 and regarding cell (5,2) by formula at line 3; the second case regarding cells (8,1), (8,2), (9,1) and (9,2), is covered by the formula at line 4 and, regarding cell (10,2) by formula at line 5.
-
\(\textit {IT}^{\ \circ -}_{cv,sd}(g_{1}, g_{2})\) is true if at least one vertex or segment of g1 intersects the exterior of g2; sufficient conditions for obtaining this result are produced in the following cases of Table 5: (i) when it exists a vertex of g1 such that no one of the scenario of cells (1,1), (2,2), (2,4), (3,2), (3,4), (4,1), (5,2), (5,4), (6,2), (6,4), (10,2) and (11,2) occurs; (ii) when it exists a segment of g1 such that the scenario of cell (9,3) occurs provided that the intersection between the segment and the patch is a point; (iii) when it exists a segment of g1 such that no one of the scenarios of cells (8,1), (8,2)(IN), (9,2), (12,2) and (9,3) together with (12,3) (the segment is contained in the union of a patch and the interior of the solid) occurs.
In the proposed test (third row of Table 7) the first case, regarding all cells, is covered by the formula at line 1, the second case is covered by the formula at line 2 combined with line 3, finally the third case is covered by the formula at line 2 combined with lines 4-19.
-
\(\textit {IT}^{\ \circ -}_{s\!f,s\!f}(g_{1}, g_{2})\) is true if at least one vertex, segment or patch of g1 intersects the exterior of g2; sufficient conditions for obtaining this result are produced in the following cases of Tables 6–7: (i) when it exists a vertex of g1 such that no one of the scenario of rows 1 − 8, 22 and 23 occurs; (ii) when it exists a segment of g1 such that no one of the scenarios of cells (13,1), (13,2)(IN), (14,1), (14,2)(IN),(15,1), (15,2)(IN), (16,1), (16,2)(IN), (24,2) and (25,2) occurs; (iii) when it exists a patch of g1 such that no one of the scenarios of cells (21,1) and (21,2)(IN) occurs.
In the proposed test (1st row of Table 8) the first case, regarding cells of rows 1 − 4, is covered by the formula at line 1, regarding cells of rows 5 − 8, is covered by the formula at line 2, regarding cells of rows 22 and 23, is covered by the formula at line 3; the second case, regarding cells (13,1), (13,2)(IN), (14,1), (14,2)(IN),(15,1), (15,2)(IN), (16,1), (16,2)(IN), is covered by the formula at line 4, regarding cells (24,2) and (25,2), is covered by formula at line 5; finally the third case is covered by formula at line 6.
-
\(\textit {IT}^{\ \circ -}_{s\!f,sd}(g_{1}, g_{2})\) is true if at least one vertex or segment of g1 intersects the exterior of g2; sufficient conditions for obtaining this result are produced in the following cases of Tables 8–9: (i) when it exists a vertex of g1 such that no one of the scenario of rows 1 − 6, 16 and 17 occurs; (ii) when it exists a segment of g1 such that no one of the scenarios of cells (8,1), (8,2)(IN), (9,2), (11,1), (11,2)(IN),(12,2), (18,2) and (19,2) occurs; (iii) when it exists a patch of g1 such that no one of the scenarios of cells (15,1), (15,2)(IN) and (20,2) occurs.
In the proposed test (2nd row of Table 8) the first case, regarding cells (1,1), (2,4) and (4,1) (5,4), is covered by the formula at line 1, regarding cells (2,2), (3,4) and (5,2), (6,4), is covered by the formula at line 2, regarding cells (3,2) and (6,2), is covered by the formula at line 3, regarding cells (16,2) and (17,2), is covered by the formula at line 4; the second case is covered by formula at line 5; finally, the third case, regarding cell (15,1), is covered by formula at line 8 (and partially by formula at line 5), regarding cell (15,2), is covered by formula at line 8 and, regarding cell (20,2), is covered by formula at line 7 and 8.
-
\(\textit {IT}^{\ \circ -}_{sd,sd}(g_{1}, g_{2})\) is true if at least one vertex or segment or patch of g1 intersects the exterior of g2; sufficient conditions for obtaining this result are produced in the following cases of Table 10: (i) when it exists a vertex of g1 such that no one of the scenario of rows 1 − 4 occurs; (ii) when it exists a segment of g1 such that no one of the scenarios of cells (6,1), (6,2)(IN), (7,2) and (8,2) occurs; (iii) when it exists a patch of g1 such that no one of the scenarios of cells (11,1), (11,2)(IN) and (12,2) occurs. Since sd2 cannot have holes then, there are no other cases to consider, indeed, in order for s1 to intersect the exterior of s2, it is necessary that at least a patch of s1 intersects the exterior of s2.
In the proposed test (3rd row of Table 8) the first case is covered by formula at line 1 and 2; the second case is covered by formula at line 3 and the third on by formula at line 4.
1.4 Proof for Proposition 9 (IT∂∂)
In the proof we show that each specialization of the intersection test (IT∂∂) covers all the possible scenarios between A and B. The complete enumeration of all scenarios is obtained as explained in Proposition 7 in Section 6.
-
\(\textit {IT}^{\ \partial \partial }_{cv,cv}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g1 is equal to a vertex of the boundary of g2; sufficient conditions for obtaining this result are produced in the following case of Table 3: cell (1,1). In the proposed test (1st row of Table 9) this case is covered by the formula at line 1.
-
\(\textit {IT}^{\ \partial \partial }_{cv,s\!f}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g1 intersects the curve representing the boundary of g2; sufficient conditions for obtaining this result are produced in the following cases of Table 4: cells (2bis, 1), (4bis, 2) and (4bis, 4). In the proposed test (2nd row of Table 9) scenario (4bis, 2) is covered by the formula at line 1, while scenarios (2bis, 1) and (4bis, 4) are covered by the formula at line 2.
-
\(\textit {IT}^{\ \partial \partial }_{cv,sd}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g1 intersects the surface representing the boundary of g2; sufficient conditions for obtaining this result are produced in the following cases of Table 5: cells (1,1), (2,2), (2,4), (3,2) and (3,4). In the proposed test (third row of Table 9) scenarios (1,1), (2,4) and (3,4)(intersection on the patch vertices) are covered by the formula at line 3; scenarios (2,2) and (3,4)(intersection on the patch segments) are covered by formula at line 2; finally scenario (3,2) is covered by formula at line 1.
-
All other tests can be converted in a test \(\textit {IT}^{\ \circ \circ }_{*,*}()\) as shown in Table 9. This can be done also because the boundary of a surface or a solid is always a cycle, i.e. it has an empty boundary.
1.5 Proof for Proposition 9 (IT∂−)
In the proof we show that each specialization of the intersection test (IT∂−) covers all the possible scenarios between A and B. The complete enumeration of all scenarios is obtained as explained in Proposition 7 in Section 6.
-
\(\textit {IT}^{\ \partial -}_{cv,cv}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g1 intersects the exterior of g2; the sufficient condition for obtaining this result is produced when there exists at least one vertex of the boundary of g1 for which the scenarios of cells (1,1), (2,1), (3,2) and (3,4) of Table 3 do not occur. In the proposed test (1st row of Table 10) scenarios (1,1), (2,1) and (3,4) are covered by the formula at line 1, while scenario (3,2) is covered by formula at line 2.
-
\(\textit {IT}^{\ \partial -}_{\textit {cv},\textit {sf}}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g1 intersects the exterior of g2; the sufficient condition for obtaining this result is produced when there exists at least one vertex of the boundary of g1 for which the scenarios of cells: (1bis, 1), (2bis, 1), (3bis, 2), (3bis, 4), (4bis, 2), (4bis, 4), (5bis, 2) and (5bis, 4) of Table 4 do not occur. In the proposed test (2nd row of Table 10) scenarios (1bis, 1), (2bis, 1), (3bis, 4), (4bis, 4) and (5bis, 4) (intersection on the patch vertices) are covered by the formula at line 1; scenario (3bis, 2) and (5bis, 4) (intersection on the patch segments) is covered by formula at line 2; finally scenario (5bis, 2) is covered by formula at line 3.
-
\(\textit {IT}^{\ \partial -}_{\textit {cv},\textit {sd}}(g_{1}, g_{2})\) is true if at least one vertex of the boundary of g1 intersects the exterior of g2; sthe sufficient condition for obtaining this result is produced when there exists at least one vertex of the boundary of g1 for which the scenarios of cells: (1,1), (2,2), (2,4), (3,2), (3,4) and (10,2) of Table 5 do not occur. In the proposed test (3rd row of Table 10) scenarios (1,1), (2,4), (3,4)(intersection on the patch vertices) are covered by the formula at line 1; scenarios (2,2) and (3,4)(intersection on the patch segments) are covered by formula at line 2; scenario (3,2) is covered by formula at line 3; finally, scenario (10,2) is covered by formula at line 4.
-
All other tests can be converted in a test \(\textit {IT}^{\ \circ -}_{*,*}()\) as shown in Table 10. This can be done also because the boundary of a surface or a solid is always a cycle, i.e. it has an empty boundary.
Rights and permissions
About this article
Cite this article
Belussi, A., Migliorini, S. & Negri, M. A framework for evaluating 3D topological relations based on a vector data model. Geoinformatica 24, 915–950 (2020). https://doi.org/10.1007/s10707-020-00413-y
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10707-020-00413-y