SpatialDefs.xid.xml
6.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?xml version="1.0" encoding="UTF-8" ?>
<specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
identity="SpatialDefs.xid.xml">
<title>GEO Spatial Definitions</title>
<comment>Definition defines common geo-spatial types..</comment>
<!-- Include all known definitions -->
<import ref="https://xid.location.studio/Tensor/V1.1/Definitions.xid.xml" local="Definitions.xid.xml" />
<namespace name="GeoSpatial">
<using namespace="Tensor"/>
<!--
*************************************
* Enumerations
*************************************
-->
<enum name="ReferenceFrame" type="Tensor.int8" default="WGS84">
<comment>Enumerations defines the supported coordinate reference frames</comment>
<literal name="undefined" value="0"></literal>
<literal name="WGS84" value="1"></literal>
<literal name="ENU" value="2"></literal>
<literal name="NED" value="3"></literal>
<literal name="LocalXYZ" value="3" />
</enum>
<enum name="ObjectType" type="Tensor.int8" default="Object">
<comment>Enumeration defines the supported Object types.</comment>
<literal name="Object" value="0"></literal>
<literal name="GeoObject" value="1"></literal>
<literal name="Location" value="2"></literal>
<literal name="EventInfo" value="3"></literal>
<literal name="ProducerInfo" value="4"></literal>
<literal name="MonitorSet" value="5"></literal>
<literal name="IlpTestDataSet" value="6"></literal>
<literal name="IlpTestSpecification" value="7"></literal>
<literal name="IlpTestResults" value="8"></literal>
<literal name="IlpTestResultSet" value="9"></literal>
</enum>
<!--
*************************************
* BoundingBox Definition.
*************************************
-->
<struct name="BoundingBox" pack="true">
<comment>Defines a bounding box in WGS84 reference frame.</comment>
<comment>
Units for latitude and longitude are in units of micro degrees (1e-6 degrees) providing for about 11 cm resolution near the equator. Altitude units are in millimeters.
</comment>
<elem name="latmin" type="Tensor.int32" multiplicity="1" >
<comment>Minimum value of the latitude. Valid range is -90,000,000 ≤ lat ≤ 90,000,000. </comment>
<tag name="unit" value="microdegrees"/>
</elem>
<elem name="latmax" type="Tensor.int32" multiplicity="1" >
<comment>Maximum value of the latitude. Valid range is -90,000,000 ≤ lat ≤ 90,000,000.</comment>
<tag name="unit" value="microdegrees"/>
</elem>
<elem name="lonmin" type="Tensor.int32" multiplicity="1" >
<comment>Minimum value of the longitude. Valid range is -180,000,000 ≤ lat ≤ 180,000,000.</comment>
<tag name="unit" value="microdegrees"/>
</elem>
<elem name="lonmax" type="Tensor.int32" multiplicity="1" >
<comment>Maximum value of the longitude. Valid range is -180,000,000 ≤ lat ≤ 180,000,000.</comment>
<tag name="unit" value="microdegrees"/>
</elem>
<elem name="altmin" type="Tensor.int32" multiplicity="1" >
<comment>Minimum value of the altitude. Valid range is +- 1,000,000,000 cm.</comment>
<tag name="unit" value="cm"/>
</elem>
<elem name="altmax" type="Tensor.int32" multiplicity="1" >
<comment>Maximum value of the altitude. Valid range is +- 1,000,000,000 cm.</comment>
<tag name="unit" value="cm"/>
</elem>
</struct>
<!--
*************************************
* PositionECEF Definition.
*************************************
-->
<struct name="PositionECEF" pack="true">
<comment>A 3D, Earth-centered, Earth-Fixed position in rotational coordinates: latitude (deg.), longitude (deg.), altitude(m)</comment>
<elem name="lat" type="Tensor.float64" multiplicity="1" >
<comment>Latitude of the position in degrees.</comment>
</elem>
<elem name="lon" type="Tensor.float64" multiplicity="1" >
<comment>Longitude of the position in degrees.</comment>
</elem>
<elem name="alt" type="Tensor.float64" multiplicity="1" >
<comment>Altitude of the position in meters.</comment>
</elem>
</struct>
<!--
*************************************
* XYZVector Definition.
*************************************
-->
<array name="XYZVector" type="float64" size="3" >
<comment>
Defines 3D Cartesian Vector data array.
</comment>
</array>
<!--
*************************************
* Object Definition.
*************************************
-->
<struct name="Object">
<comment>
Defines the base Object comprising id, optional name, description, and user data (JSON).
</comment>
<elem name="typeObject" type="ObjectType" multiplicity="1" rttd="true">
<comment>Element indicates the type of the Object</comment>
</elem>
<elem name="uuid" type="Tensor.UUID" multiplicity="1">
<comment>Unique identifier for this object.</comment>
</elem>
<elem name="uriExternal" type="Tensor.uri" multiplicity="0..1">
<comment>Optional external identifier for this object.</comment>
</elem>
<elem name="uriClassifier" type="Tensor.uri" multiplicity="0..1">
<comment>Optional external classifier identifier for this object.</comment>
</elem>
<elem name="name" type="Tensor.string" multiplicity="0..1">
<comment>Optional user friendly name of the GeoObject.</comment>
</elem>
<elem name="description" type="Tensor.string" multiplicity="0..1">
<comment>Optional user friendly description of the GeoObject.</comment>
</elem>
<elem name="miscdata" type="Tensor.json" multiplicity="0..1">
<comment>Optional miscellaneous JSON data associated with this object. This field is
provided to add additional non-typed data to the object, which can be application specific.
Should multiple applications share this data, then likely an updated XID definition would be more
appropriate.
</comment>
</elem>
</struct>
</namespace>
</specification>