Skip to main content
Log in

A framework for evaluating 3D topological relations based on a vector data model

  • Published:
GeoInformatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Notes

  1. http://www.sfcgal.org/

References

  1. Belussi A, Migliorini S, Negri M (2019) https://github.com/smigliorini/spatialdbgroup Last accessed Dec. 2019

  2. 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

  3. 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

  4. Bieri H (1995) Nef polyhedra: A brief introduction. Comput Suppl 10:43–60

    Article  Google Scholar 

  5. Egenhofer M J (1995) Topological relations in 3D. Tech. rep., University of Maine USA

  6. Egenhofer M J, Franzosa R (1991) Point-set topological spatial relations. Int J Geograph Inf Syst 2(5):161–174

    Google Scholar 

  7. 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

    Article  Google Scholar 

  8. 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

  9. Open Geospatial Consortium Inc.: OGC City Geography Markup Language (CityGML) Encoding Standard (2012). Version 2.0 http://www.opengeospatial.org/standards/citygml

  10. ISO: ISO 19107 Geographic Information – Spatial Schema (2003). http://www.iso.org/iso/catalogue_detail.htm?csnumber=26012

  11. ISO: ISO 19125 Geographic Information – Simple Feature Access – Part 1: Common architecture (2004). https://www.iso.org/standard/40114.html

  12. 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

  13. 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

  14. 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

    Article  Google Scholar 

  15. 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

  16. 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

  17. OSGeo: PostGIS 3.0 Manual. Open Source Geospatial Foundation (2019). https://postgis.net/stuff/postgis-3.0.pdf

  18. 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

  19. 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

  20. 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

  21. Woo T C, Thomasma T (1984) An algorithm for generating solid elements in objects with holes. Comput Struct 18(2):333–342

    Article  Google Scholar 

  22. 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

    Google Scholar 

  23. Xu D, van Oosterom P, Zlatanova S (2016) A methodology for modelling of 3D spatial constraints. In: Advances in 3D Geoinformation, pp 95–117

  24. 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

  25. Zlatanova S (2000) On 3D topological relationships. In: 11th International Workshop on Database and Expert Systems Applications, 2000. Proceedings, pp. 913–919

  26. Zlatanova S, Shi W (2004) Topological models and frameworks for 3D, spatial objects. Comput Geosci 30(4):419–428

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sara Migliorini.

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 67: (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 89: (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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10707-020-00413-y

Keywords

Navigation