Let's suppose we want to model GeographicPositions, described by coordinates or coordinate tuples inside some Coordinate Reference System. Also, these would be put inside some sequence to represent Lines (Polylines, Tracklogs, etc.)
If we consider a Mapping Software Application, where we can draw over a map image with the mouse (such as Google Maps, OziExplorer, etc.), we are defining horizontal positions based on Latitude and Longitude, so these positions are inherently 2D.
Now if we consider a GPS device, it tracks spatial positions based on Latitude, Longitude and Elevation, so these positions are inherently 3D.
We could, of course, use DEM to get terrain elevation based on horizontal position, but that should not (as I understand) be considered an INTRINSIC PROPERTY of that position, since it is defined by an external function (an operation over the coordinates AND the DEM dataset).
In the other hand, a GPS device can be moved not only along the terrain surface, but it can be inside an airplane, and thus its elevation is intrinsically defined and independent of horizontal position, not being "extractable" by any operation over DEM dataset.
So, my questions are:
- Is it common practice in GIS Systems to treat 2D and 3D positions (and collections of positions) as conceptually different entities?
- Should a 2D position be considered a limited type of a more general 3D position?
- With Elevation set to None/Null?
- With Elevation set to 'NaN'?
- Without Elevation property at all?
- Should a 3D position be considered an extended type, derived from a more basic 2D position by adding an Elevation property?
- How to represent a 3D tracklog where some of its positions' elevations are missing? How should it be mathematically processed regarding its missing values? Should a tracklog instance like this exist in the first place?
I would be glad to update the question if anyone thinks it must be clarified!