Commit aec5ac6b authored by Paul Taylor's avatar Paul Taylor Committed by Mark Canterbury
Browse files

TS 103 280 CR040 - New WGS84 coordinate types

parent 38eb032d
Loading
Loading
Loading
Loading
+70 −0
Original line number Diff line number Diff line
@@ -97,4 +97,74 @@ VLANID ::= INTEGER (0..4095)

ServiceAccessIdentifier ::= UTF8String

Percentage ::= INTEGER (0..100)

AltitudeMeters ::= INTEGER (-1000..50000)

Altitude ::= CHOICE
{
	altitudeAboveGroundLevel  [0] AltitudeMeters,
	altitudeAboveMeanSeaLevel [1] AltitudeMeters
}

UncertaintyMeters ::= INTEGER (1..MAX)

GNSSLocation ::= SEQUENCE
{
	location [0] GeoShape,
	fixMode  [1] FixMode
}

WGS84Location ::= SEQUENCE
{
	location    [0] WGS84Coordinate,
	altitude    [1] Altitude OPTIONAL
}

WGS84Coordinate ::= CHOICE
{
    decimal [0] Common-Parameters.WGS84CoordinateDecimal,
    angular [1] Common-Parameters.WGS84CoordinateAngular
}

GeoShape ::= SEQUENCE
{
	shape      [0] GMLShape,
	confidence [1] Percentage OPTIONAL
}

GMLShape ::= CHOICE
{
    point       [0] GeoPoint,
    sphere      [1] GeoSphere,
    xyEllipsoid [2] XYEllipsoid
}

GeoPoint ::= CHOICE
{
    wGS84Point [0] WGS84Location
}

GeoSphere ::= SEQUENCE
{
    centerPoint  [0] GeoPoint,
    radiusMeters [1] UncertaintyMeters
}

XYEllipsoid ::= SEQUENCE
{
    centerPoint          [0] GeoPoint,
    uncertaintyLongitude [1] UncertaintyMeters,
    uncertaintyLatitude  [2] UncertaintyMeters,
    uncertaintyAltitude  [3] UncertaintyMeters OPTIONAL
}

FixMode ::= ENUMERATED
{
    unknown (0),
    noFix   (1),
    fix2D   (2),
    fix3D   (3)
}

END
+81 −0
Original line number Diff line number Diff line
@@ -313,4 +313,85 @@
    <xs:simpleType name="VRF">
        <xs:restriction base="ShortString"/>
    </xs:simpleType>
    <xs:simpleType name="Percentage">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="100"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="AltitudeMeters">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="-1000"/>
            <xs:maxInclusive value="50000"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="Altitude">
        <xs:choice>
            <xs:element name="altitudeAboveGroundLevel" type="AltitudeMeters"/>
            <xs:element name="altitudeAboveMeanSeaLevel" type="AltitudeMeters"/>
        </xs:choice>
    </xs:complexType>
    <xs:simpleType name="UncertaintyMeters">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="GNSSLocation">
        <xs:sequence>
            <xs:element name="location" type="GeoShape"/>
            <xs:element name="fixMode" type="FixMode"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="WGS84Location">
        <xs:sequence>
            <xs:element name="location" type="WGS84Coordinate"/>
            <xs:element name="altitude" type="Altitude" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="WGS84Coordinate">
        <xs:choice>
            <xs:element name="wGS84CoordinateDecimal" type="WGS84CoordinateDecimal"/>
            <xs:element name="wGS84CoordinateAngular" type="WGS84CoordinateAngular"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="GeoShape">
        <xs:sequence>
            <xs:element name="shape" type="GMLShape"/>
            <xs:element name="confidence" type="Percentage" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="GMLShape">
        <xs:choice>
            <xs:element name="point" type="GeoPoint"/>
            <xs:element name="sphere" type="GeoSphere"/>
            <xs:element name="xyEllipsoid" type="XYEllipsoid"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="GeoPoint">
        <xs:choice>
            <xs:element name="wGS84Point" type="WGS84Location"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="GeoSphere">
        <xs:sequence>
            <xs:element name="centerPoint" type="GeoPoint"/>
            <xs:element name="radiusMeters" type="UncertaintyMeters"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="XYEllipsoid">
        <xs:sequence>
            <xs:element name="centerPoint" type="GeoPoint"/>
            <xs:element name="uncertaintyLongitude" type="UncertaintyMeters"/>
            <xs:element name="uncertaintyLatitude" type="UncertaintyMeters"/>
            <xs:element name="uncertaintyAltitude" type="UncertaintyMeters" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="FixMode">
        <xs:restriction base="xs:string">
            <xs:enumeration value="unknown"/>
            <xs:enumeration value="noFix"/>
            <xs:enumeration value="fix2D"/>
            <xs:enumeration value="fix3D"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>