POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
Add a GIS oriented geometry property which simply uses a list of real. Unless we are going to add a suite of manipulation functions to the DAE then this is just about as useful as adding specialized data type.
CHANGE ERP_gis_geometry (*<REMARK> CHANGE ERP_gis_geometry *) (*<DESC>Add a GIS oriented geometry property which simply uses a list of real. Unless we are going to add a suite of manipulation functions to the DAE then this is just about as useful as adding specialized data type. *) ADD ENTITY pty_geometry_2d_gis SUBTYPE OF (property); (*<DESC>The coordinate positions of an object on the earth's surface in a two dimensional coordinate system. This utilizes the format of the OpenGIS Well Known Binary representation for geometry (WKBGeometry) with the exception that byteOrder is not specified and all values are double precision. The assertion is that any two positions with the same x,y values are concurrent (i.e., have the same vertical location) and the object can be fully defined by only specifying the geometry at the boundaries (i.e., the interior geometry is inherently that of the surface of the earth).*) data_value : ndt_gis_wkb_Geometry (*<DESC>The OpenGIS WKBGeometry description of an object.*); coordinate_system : coordinate_system (*<DESC>The coordinate system of the x,y values in data value.*) (*<VERB>define values in*); unit_of_measure : ref_unit_of_measure (*<DESC>The unit of measure of the coordinates in data value.*) (*<VERB>be specified in*); face : OPTIONAL face (*<VERB>be a property of*); composite_spatial_object : OPTIONAL composite_spatial_object (*<VERB>be a property of*); UNIQUE si : face, composite_spatial_object, activity; END_ENTITY; ADD TYPE ndt_gis_wkb_geometry = LIST[3:?] OF REAL(10); (*<DESC>A geometry specification conforming to the OpenGIS Well Known Binary (WKB) geometry format. This is a LIST[3:?] OF REAL. The meaning of each real value is defined by the OpengGIS WKB geometry specification*) END_TYPE; ALTER ENTITY face; INVERSE ADD pty_geometry_2d_gis : SET[0:?] OF pty_geometry_2d_gis FOR face (*<VERB>have a property of*); WHERE ADD val : (EXISTS (pty_geometry_2d_gis) AND (on_surface = TRUE)) OR (NOT EXISTS (pty_geometry_2d_gis)) (*<DESC>The object must be on the surface of the earth if a GIS geometry is specified.*); END_ENTITY; ALTER ENTITY composite_spatial_object; INVERSE ADD pty_geometry_2d_gis : SET[0:?] OF pty_geometry_2d_gis FOR composite_spatial_object (*<VERB>have a property of*); WHERE ADD val : (EXISTS (pty_geometry_2d_gis) AND (on_surface = TRUE)) OR (NOT EXISTS (pty_geometry_2d_gis)) (*<DESC>The object must be on the surface of the earth if a GIS geometry is specified.*); END_ENTITY; ALTER ENTITY coordinate_system; INVERSE ADD pty_geometry_2d_gis : SET[0:?] OF pty_geometry_2d_gis FOR coordinate_system (*<DESC>The set of OpenGIS formatted geometries which use this coordinate system*) (*<VERB>specify values for*); END_ENTITY; ALTER ENTITY ref_unit_of_measure; INVERSE ADD pty_geometry_2d_gis : SET[0:?] OF pty_geometry_2d_gis FOR unit_of_measure (*<DESC>The set of OpenGIS formatted geometries which are specified in this unit of measure.*) (*<VERB>specify values for*); END_ENTITY; END_CHANGE;