Open wouterbeek opened 1 week ago
geo:transform needs to know the IRIs of both source and target CRS. For engineering CRSs (local CRSs), typically no CRS IRI will be available. And with no CRS IRI, a 3D geometry can not be encoded as a geosparql:Geometry. At Triply, we had the challenge of georeferencing 3D geometry from BIM, for example as a glTF file. The coordinates use a cartesian engineering CRS, with a local origin. In order to be able to georeference such a 3D geometry, the following data are needed:
Could it be in scope for GeoSPARQL to provide these properties? I have had a hard time finding suitable semantics for rotation elsewhere, so I think that would nicely fill a gap in the semantic web.
This probably also touches on CRS semantics in GeoSPARQL. Can a geo:Geometry with a (temporarily) unspecified CRS exist? Or should there be another subclass of geo:SpatialObject for that?
I might be wrong, but I think these transformations could be part of coordinate operations that you find in CRS terminology or they could be adopted from there. I would need to check that and maybe it comes up in the CRS ontology work
Triply Use Case 4: Align an engineering CRS to a geospatial CRS
Description
3D BIM data typically uses an internal "engineering CRS". This may either be one CRS for the whole building, or multiple CRS-es per building component. The BIM data typically starts at coordinate (0,0,0) in the engineering CRS.
In GeoSPARQL, my data uses a "geospatial CRS". This may be a global CRS for any place on Earth, or a national CRS for any place in a country.
I know that I should be able to integrate data that follows the "engineering CRS" into the data that follows the "geospatial CRS", but I do not know how to do that. In GeoSPARQL 1.1, I have
geof:transform()
which I have used in the part to convert between two "geospatial CRSes", but I do not know how to apply that function to data with an "engineering CRS" that starts at (0,0,0).Actor
Preconditions
Postconditions
Steps
geof:transform()
or something similar to translate (1) into something that fits into (2).