# Recommended way to explicitly distinguish 2D from 3D locations

In strongly typed object-oriented programming environment, I want to make an explicit distinction between two types of Locations:

1. One type would be 2D (along Earth surface), thus having Latitude and Longitude. With a DEM available, Elevation would be a function of Latitude, Longitude, and the given DEM model. This type would represent positions of terrestrial or water-floating objects moving along the Earth surface.
2. Other type would be (inherently) 3D, with independend Elevation, intended to represent aerial, underwater or subterraneal positions and trajectories.

So my question is:

Is there already any de-facto standard or commonly used name for such distinct types of locations?

In my opinion the distinction is less location types and more data types. The term that immediately comes to mind is z-enabled data.

All real-world locations are by default 3D - a specific point in three-dimensional space. Any location given without a specified z value (and known reference plane or point) is simply a 2D abstraction of that point. You cannot determine that third dimension without another data set and so it is assumed to be at the prevailing surface plane at that location.

People generally tend to assume a common reference plane when it comes to 3D - the surface of the earth that they can walk on or see. There's not really a '0', so we assign 'mean sea-level' as that reference/axis. But the ground doesn't stop going down at the water level, we just give it negative values because we can't see it. With air, one typically refers to 'above ground level' (AGL) since the clearance between a flying object and the ground is not fixed when referencing mean sea level. Underground is much the same way since the default mode of thinking is 'the surface I walk on'.

In terms of an adjective for a location (as opposed to data), all that comes to mind is 'surface' or... not (subsurface/airborne/overhead).

• That seems very reasonable, and was exactely the kind of reasoning I was looking for. You correctly inferred my interest is on data-types and by the aforementioned distinction, I believe it's qualitatively different to have a z-enabled type where elevation data wasn't available and thus is null, and a different, inherently planar or "terrestrial" data-type where z is a direct function of lat/lon, and is to be determined indirectly somehow (either by GPS, being then a special case of a 3d trajectory, either via DEM querying). What do you think? May 20, 2014 at 2:25
• @heltonbiker In theory, yes. If it's z-enabled it at least has the option of storing that data even if not currently present, whereas non-z must always be derived. But in practice, if the values are all null for whatever reason then as far as use goes it's no different than 2D data. May 20, 2014 at 6:29

I will defer to others for more rigorous terminology but I have commonly heard your first type of "3D" location referred to as "2.5D". However, this term is also used in video gaming and may not have the same meaning there. You could also call them "surface draped".

On the other hand your second type would seem to be "True 3D" with XYZ coordinates for all vertices.