aixm 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +96 -72
- data/README.md +0 -1
- data/lib/aixm/component/geometry.rb +8 -2
- data/lib/aixm/component/layer.rb +83 -2
- data/lib/aixm/document.rb +11 -2
- data/lib/aixm/errors.rb +14 -2
- data/lib/aixm/feature.rb +2 -14
- data/lib/aixm/feature/airport.rb +19 -18
- data/lib/aixm/feature/airspace.rb +19 -21
- data/lib/aixm/feature/navigational_aid.rb +2 -2
- data/lib/aixm/feature/navigational_aid/designated_point.rb +1 -2
- data/lib/aixm/feature/navigational_aid/dme.rb +25 -4
- data/lib/aixm/feature/navigational_aid/marker.rb +1 -2
- data/lib/aixm/feature/navigational_aid/ndb.rb +1 -2
- data/lib/aixm/feature/navigational_aid/tacan.rb +5 -2
- data/lib/aixm/feature/navigational_aid/vor.rb +3 -4
- data/lib/aixm/feature/organisation.rb +3 -4
- data/lib/aixm/feature/unit.rb +3 -4
- data/lib/aixm/version.rb +1 -1
- data/schemas/ofmx/0/OFMX-CSV-Obstacle.json +209 -0
- data/schemas/ofmx/0/OFMX-CSV.json +12 -0
- data/schemas/ofmx/0/OFMX-DataTypes.xsd +64 -5
- data/schemas/ofmx/0/OFMX-Features.xsd +73 -23
- data/schemas/ofmx/0/OFMX-Snapshot.xsd +7 -2
- data/spec/factory.rb +8 -18
- data/spec/lib/aixm/component/geometry_spec.rb +27 -4
- data/spec/lib/aixm/component/helipad_spec.rb +2 -2
- data/spec/lib/aixm/component/layer_spec.rb +27 -0
- data/spec/lib/aixm/component/runway_spec.rb +13 -13
- data/spec/lib/aixm/document_spec.rb +56 -42
- data/spec/lib/aixm/feature/airport_spec.rb +15 -15
- data/spec/lib/aixm/feature/airspace_spec.rb +38 -30
- data/spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb +2 -2
- data/spec/lib/aixm/feature/navigational_aid/dme_spec.rb +24 -7
- data/spec/lib/aixm/feature/navigational_aid/marker_spec.rb +4 -4
- data/spec/lib/aixm/feature/navigational_aid/ndb_spec.rb +4 -4
- data/spec/lib/aixm/feature/navigational_aid/tacan_spec.rb +24 -7
- data/spec/lib/aixm/feature/navigational_aid/vor_spec.rb +14 -14
- data/spec/lib/aixm/feature/organisation_spec.rb +2 -2
- data/spec/lib/aixm/feature/unit_spec.rb +11 -11
- data/spec/lib/aixm/feature_spec.rb +0 -20
- metadata +4 -2
@@ -2,7 +2,7 @@
|
|
2
2
|
<!--
|
3
3
|
********************************************************************************
|
4
4
|
|
5
|
-
OFMX 0.1.0 - open flightmaps exchange format
|
5
|
+
OFMX XML 0.1.0 - open flightmaps exchange format
|
6
6
|
|
7
7
|
This is a fork of AIXM 4.5 to accomodate extensions and backports for
|
8
8
|
open flightmaps.
|
@@ -37,7 +37,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
37
37
|
-->
|
38
38
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
39
39
|
<xsd:annotation>
|
40
|
-
<xsd:documentation>Version:
|
40
|
+
<xsd:documentation>Version: 0.1.0</xsd:documentation>
|
41
41
|
</xsd:annotation>
|
42
42
|
<xsd:include schemaLocation="OFMX-Features.xsd"/>
|
43
43
|
<xsd:attributeGroup name="Changes"/>
|
@@ -192,6 +192,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
192
192
|
<xsd:documentation>The version of the OFMX-Snapshot.xsd schema to which the message conforms</xsd:documentation>
|
193
193
|
</xsd:annotation>
|
194
194
|
</xsd:attribute>
|
195
|
+
<xsd:attribute name="region" type="codeRegion">
|
196
|
+
<xsd:annotation>
|
197
|
+
<xsd:documentation>Region the data in this document belongs to</xsd:documentation>
|
198
|
+
</xsd:annotation>
|
199
|
+
</xsd:attribute>
|
195
200
|
<xsd:attribute name="origin" type="xsd:string" use="required">
|
196
201
|
<xsd:annotation>
|
197
202
|
<xsd:documentation>The originator (source) of the message</xsd:documentation>
|
data/spec/factory.rb
CHANGED
@@ -38,8 +38,10 @@ module AIXM
|
|
38
38
|
def layer
|
39
39
|
AIXM.layer(
|
40
40
|
class: :C,
|
41
|
+
location_indicator: 'XXXX',
|
41
42
|
vertical_limits: vertical_limits
|
42
43
|
).tap do |layer|
|
44
|
+
layer.activity = :aerodrome_traffic
|
43
45
|
layer.timetable = AIXM::H24
|
44
46
|
layer.selective = true
|
45
47
|
layer.remarks = 'airspace layer'
|
@@ -77,11 +79,10 @@ module AIXM
|
|
77
79
|
def polygon_airspace
|
78
80
|
AIXM.airspace(
|
79
81
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
80
|
-
region: 'LF',
|
81
82
|
id: 'PA',
|
82
83
|
type: :danger_area,
|
83
|
-
|
84
|
-
|
84
|
+
local_type: 'POLYGON',
|
85
|
+
name: 'POLYGON AIRSPACE'
|
85
86
|
).tap do |airspace|
|
86
87
|
airspace.layers << layer
|
87
88
|
airspace.geometry = polygon_geometry
|
@@ -91,11 +92,10 @@ module AIXM
|
|
91
92
|
def circle_airspace
|
92
93
|
AIXM.airspace(
|
93
94
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
94
|
-
region: 'LF',
|
95
95
|
id: 'CA',
|
96
96
|
type: :danger_area,
|
97
|
-
|
98
|
-
|
97
|
+
local_type: 'CIRCLE',
|
98
|
+
name: 'CIRCLE AIRSPACE'
|
99
99
|
).tap do |airspace|
|
100
100
|
airspace.layers << layer
|
101
101
|
airspace.geometry = circle_geometry
|
@@ -107,7 +107,6 @@ module AIXM
|
|
107
107
|
def designated_point
|
108
108
|
AIXM.designated_point(
|
109
109
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
110
|
-
region: 'LF',
|
111
110
|
id: 'DDD',
|
112
111
|
name: 'DESIGNATED POINT NAVAID',
|
113
112
|
xy: AIXM.xy(lat: %q(47°51'33"N), long: %q(007°33'36"E)),
|
@@ -122,7 +121,6 @@ module AIXM
|
|
122
121
|
def dme
|
123
122
|
AIXM.dme(
|
124
123
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
125
|
-
region: 'LF',
|
126
124
|
organisation: organisation,
|
127
125
|
id: 'MMM',
|
128
126
|
name: 'DME NAVAID',
|
@@ -138,7 +136,6 @@ module AIXM
|
|
138
136
|
def marker
|
139
137
|
AIXM.marker(
|
140
138
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
141
|
-
region: 'LF',
|
142
139
|
organisation: organisation,
|
143
140
|
id: '---',
|
144
141
|
name: 'MARKER NAVAID',
|
@@ -154,7 +151,6 @@ module AIXM
|
|
154
151
|
def ndb
|
155
152
|
AIXM.ndb(
|
156
153
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
157
|
-
region: 'LF',
|
158
154
|
organisation: organisation,
|
159
155
|
id: 'NNN',
|
160
156
|
name: 'NDB NAVAID',
|
@@ -171,7 +167,6 @@ module AIXM
|
|
171
167
|
def tacan
|
172
168
|
AIXM.tacan(
|
173
169
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
174
|
-
region: 'LF',
|
175
170
|
organisation: organisation,
|
176
171
|
id: 'TTT',
|
177
172
|
name: 'TACAN NAVAID',
|
@@ -187,7 +182,6 @@ module AIXM
|
|
187
182
|
def vor
|
188
183
|
AIXM.vor(
|
189
184
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
190
|
-
region: 'LF',
|
191
185
|
organisation: organisation,
|
192
186
|
id: 'VVV',
|
193
187
|
name: 'VOR NAVAID',
|
@@ -205,7 +199,6 @@ module AIXM
|
|
205
199
|
def vordme
|
206
200
|
AIXM.vor(
|
207
201
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
208
|
-
region: 'LF',
|
209
202
|
organisation: organisation,
|
210
203
|
id: 'VDD',
|
211
204
|
name: 'VOR/DME NAVAID',
|
@@ -224,7 +217,6 @@ module AIXM
|
|
224
217
|
def vortac
|
225
218
|
AIXM.vor(
|
226
219
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
227
|
-
region: 'LF',
|
228
220
|
organisation: organisation,
|
229
221
|
id: 'VTT',
|
230
222
|
name: 'VORTAC NAVAID',
|
@@ -245,7 +237,6 @@ module AIXM
|
|
245
237
|
def organisation
|
246
238
|
AIXM.organisation(
|
247
239
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
248
|
-
region: 'LF',
|
249
240
|
name: 'FRANCE',
|
250
241
|
type: 'S'
|
251
242
|
).tap do |organisation|
|
@@ -259,7 +250,6 @@ module AIXM
|
|
259
250
|
def unit
|
260
251
|
AIXM.unit(
|
261
252
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
262
|
-
region: 'LF',
|
263
253
|
organisation: organisation,
|
264
254
|
name: 'PUJAUT TWR',
|
265
255
|
type: :aerodrome_control_tower,
|
@@ -299,9 +289,8 @@ module AIXM
|
|
299
289
|
def airport
|
300
290
|
AIXM.airport(
|
301
291
|
source: 'LF|GEN|0.0 FACTORY|0|0',
|
302
|
-
region: 'LF',
|
303
292
|
organisation: organisation,
|
304
|
-
|
293
|
+
id: 'LFNT',
|
305
294
|
name: 'Avignon-Pujaut',
|
306
295
|
xy: AIXM.xy(lat: %q(43°59'46"N), long: %q(004°45'16"E))
|
307
296
|
).tap do |airport|
|
@@ -359,6 +348,7 @@ module AIXM
|
|
359
348
|
def document
|
360
349
|
time = Time.parse('2018-01-01 12:00:00 +0100')
|
361
350
|
AIXM.document(
|
351
|
+
region: 'LF',
|
362
352
|
namespace: '00000000-0000-0000-0000-000000000000',
|
363
353
|
created_at: time,
|
364
354
|
effective_at: time
|
@@ -7,6 +7,7 @@ describe AIXM::Component::Geometry do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it "must fail checks" do
|
10
|
+
subject.wont_be :point?
|
10
11
|
subject.wont_be :circle?
|
11
12
|
subject.wont_be :polygon?
|
12
13
|
subject.wont_be :closed?
|
@@ -24,14 +25,27 @@ describe AIXM::Component::Geometry do
|
|
24
25
|
end
|
25
26
|
end
|
26
27
|
|
27
|
-
it "must
|
28
|
+
it "must pass checks" do
|
29
|
+
subject.must_be :point?
|
28
30
|
subject.wont_be :circle?
|
29
31
|
subject.wont_be :polygon?
|
30
|
-
subject.
|
32
|
+
subject.must_be :closed?
|
31
33
|
end
|
32
34
|
|
33
|
-
it "must
|
34
|
-
|
35
|
+
it "must return elements" do
|
36
|
+
subject.segments.count.must_equal 1
|
37
|
+
end
|
38
|
+
|
39
|
+
it "builds valid AIXM" do
|
40
|
+
AIXM.aixm!
|
41
|
+
subject.to_xml.must_equal <<~END
|
42
|
+
<Avx>
|
43
|
+
<codeType>GRC</codeType>
|
44
|
+
<geoLat>110000.00N</geoLat>
|
45
|
+
<geoLong>0220000.00E</geoLong>
|
46
|
+
<codeDatum>WGE</codeDatum>
|
47
|
+
</Avx>
|
48
|
+
END
|
35
49
|
end
|
36
50
|
end
|
37
51
|
|
@@ -44,6 +58,7 @@ describe AIXM::Component::Geometry do
|
|
44
58
|
end
|
45
59
|
|
46
60
|
it "must fail checks" do
|
61
|
+
subject.wont_be :point?
|
47
62
|
subject.wont_be :circle?
|
48
63
|
subject.wont_be :polygon?
|
49
64
|
subject.wont_be :closed?
|
@@ -65,6 +80,7 @@ describe AIXM::Component::Geometry do
|
|
65
80
|
end
|
66
81
|
|
67
82
|
it "must pass checks" do
|
83
|
+
subject.wont_be :point?
|
68
84
|
subject.wont_be :circle?
|
69
85
|
subject.must_be :polygon?
|
70
86
|
subject.must_be :closed?
|
@@ -115,6 +131,7 @@ describe AIXM::Component::Geometry do
|
|
115
131
|
end
|
116
132
|
|
117
133
|
it "must fail checks" do
|
134
|
+
subject.wont_be :point?
|
118
135
|
subject.wont_be :circle?
|
119
136
|
subject.wont_be :polygon?
|
120
137
|
subject.wont_be :closed?
|
@@ -135,6 +152,7 @@ describe AIXM::Component::Geometry do
|
|
135
152
|
end
|
136
153
|
|
137
154
|
it "must pass checks" do
|
155
|
+
subject.wont_be :point?
|
138
156
|
subject.wont_be :circle?
|
139
157
|
subject.must_be :polygon?
|
140
158
|
subject.must_be :closed?
|
@@ -176,6 +194,7 @@ describe AIXM::Component::Geometry do
|
|
176
194
|
end
|
177
195
|
|
178
196
|
it "must fail checks" do
|
197
|
+
subject.wont_be :point?
|
179
198
|
subject.wont_be :circle?
|
180
199
|
subject.wont_be :polygon?
|
181
200
|
subject.wont_be :closed?
|
@@ -196,6 +215,7 @@ describe AIXM::Component::Geometry do
|
|
196
215
|
end
|
197
216
|
|
198
217
|
it "must pass checks" do
|
218
|
+
subject.wont_be :point?
|
199
219
|
subject.wont_be :circle?
|
200
220
|
subject.must_be :polygon?
|
201
221
|
subject.must_be :closed?
|
@@ -238,6 +258,7 @@ describe AIXM::Component::Geometry do
|
|
238
258
|
end
|
239
259
|
|
240
260
|
it "must fail checks" do
|
261
|
+
subject.wont_be :point?
|
241
262
|
subject.wont_be :circle?
|
242
263
|
subject.wont_be :polygon?
|
243
264
|
subject.wont_be :closed?
|
@@ -256,6 +277,7 @@ describe AIXM::Component::Geometry do
|
|
256
277
|
end
|
257
278
|
|
258
279
|
it "must pass checks" do
|
280
|
+
subject.wont_be :point?
|
259
281
|
subject.must_be :circle?
|
260
282
|
subject.wont_be :polygon?
|
261
283
|
subject.must_be :closed?
|
@@ -285,6 +307,7 @@ describe AIXM::Component::Geometry do
|
|
285
307
|
end
|
286
308
|
|
287
309
|
it "must fail checks when additional elements are present" do
|
310
|
+
subject.wont_be :point?
|
288
311
|
subject.wont_be :circle?
|
289
312
|
subject.wont_be :polygon?
|
290
313
|
subject.wont_be :closed?
|
@@ -95,7 +95,7 @@ describe AIXM::Component::Helipad do
|
|
95
95
|
subject.to_xml.must_equal <<~END
|
96
96
|
<Tla>
|
97
97
|
<TlaUid>
|
98
|
-
<AhpUid
|
98
|
+
<AhpUid>
|
99
99
|
<codeId>LFNT</codeId>
|
100
100
|
</AhpUid>
|
101
101
|
<txtDesig>H1</txtDesig>
|
@@ -121,7 +121,7 @@ describe AIXM::Component::Helipad do
|
|
121
121
|
subject.to_xml.must_equal <<~END
|
122
122
|
<Tla>
|
123
123
|
<TlaUid>
|
124
|
-
<AhpUid
|
124
|
+
<AhpUid>
|
125
125
|
<codeId>LFNT</codeId>
|
126
126
|
</AhpUid>
|
127
127
|
<txtDesig>H1</txtDesig>
|
@@ -23,12 +23,37 @@ describe AIXM::Component::Layer do
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
describe :location_indicator= do
|
27
|
+
it "fails on invalid values" do
|
28
|
+
[:foobar, 123, 'XXX', 'XXXXX'].wont_be_written_to subject, :location_indicator
|
29
|
+
end
|
30
|
+
|
31
|
+
it "accepts nil value" do
|
32
|
+
[nil].must_be_written_to subject, :location_indicator
|
33
|
+
end
|
34
|
+
|
35
|
+
it "upcases value" do
|
36
|
+
subject.tap { |s| s.location_indicator = 'lfbb' }.location_indicator.must_equal 'LFBB'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
26
40
|
describe :vertical_limits= do
|
27
41
|
it "fails on invalid values" do
|
28
42
|
[nil, :foobar, 123].wont_be_written_to subject, :vertical_limits
|
29
43
|
end
|
30
44
|
end
|
31
45
|
|
46
|
+
describe :activity= do
|
47
|
+
it "fails on invalid values" do
|
48
|
+
[:foobar, 123].wont_be_written_to subject, :activity
|
49
|
+
end
|
50
|
+
|
51
|
+
it "looks up valid values" do
|
52
|
+
subject.tap { |s| s.activity = :aerodrome_traffic }.activity.must_equal :aerodrome_traffic
|
53
|
+
subject.tap { |s| s.activity = :GLIDER }.activity.must_equal :gliding
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
32
57
|
describe :timetable= do
|
33
58
|
macro :timetable
|
34
59
|
end
|
@@ -81,6 +106,8 @@ describe AIXM::Component::Layer do
|
|
81
106
|
AIXM.ofmx!
|
82
107
|
subject.to_xml.must_equal <<~END
|
83
108
|
<codeClass>C</codeClass>
|
109
|
+
<codeLocInd>XXXX</codeLocInd>
|
110
|
+
<codeActivity>TFC-AD</codeActivity>
|
84
111
|
<codeDistVerUpper>STD</codeDistVerUpper>
|
85
112
|
<valDistVerUpper>65</valDistVerUpper>
|
86
113
|
<uomDistVerUpper>FL</uomDistVerUpper>
|
@@ -96,7 +96,7 @@ describe AIXM::Component::Runway do
|
|
96
96
|
subject.to_xml.must_equal <<~END
|
97
97
|
<Rwy>
|
98
98
|
<RwyUid>
|
99
|
-
<AhpUid
|
99
|
+
<AhpUid>
|
100
100
|
<codeId>LFNT</codeId>
|
101
101
|
</AhpUid>
|
102
102
|
<txtDesig>16L/34R</txtDesig>
|
@@ -111,7 +111,7 @@ describe AIXM::Component::Runway do
|
|
111
111
|
<Rdn>
|
112
112
|
<RdnUid>
|
113
113
|
<RwyUid>
|
114
|
-
<AhpUid
|
114
|
+
<AhpUid>
|
115
115
|
<codeId>LFNT</codeId>
|
116
116
|
</AhpUid>
|
117
117
|
<txtDesig>16L/34R</txtDesig>
|
@@ -130,7 +130,7 @@ describe AIXM::Component::Runway do
|
|
130
130
|
<RddUid>
|
131
131
|
<RdnUid>
|
132
132
|
<RwyUid>
|
133
|
-
<AhpUid
|
133
|
+
<AhpUid>
|
134
134
|
<codeId>LFNT</codeId>
|
135
135
|
</AhpUid>
|
136
136
|
<txtDesig>16L/34R</txtDesig>
|
@@ -147,7 +147,7 @@ describe AIXM::Component::Runway do
|
|
147
147
|
<Rdn>
|
148
148
|
<RdnUid>
|
149
149
|
<RwyUid>
|
150
|
-
<AhpUid
|
150
|
+
<AhpUid>
|
151
151
|
<codeId>LFNT</codeId>
|
152
152
|
</AhpUid>
|
153
153
|
<txtDesig>16L/34R</txtDesig>
|
@@ -164,7 +164,7 @@ describe AIXM::Component::Runway do
|
|
164
164
|
<RddUid>
|
165
165
|
<RdnUid>
|
166
166
|
<RwyUid>
|
167
|
-
<AhpUid
|
167
|
+
<AhpUid>
|
168
168
|
<codeId>LFNT</codeId>
|
169
169
|
</AhpUid>
|
170
170
|
<txtDesig>16L/34R</txtDesig>
|
@@ -187,7 +187,7 @@ describe AIXM::Component::Runway do
|
|
187
187
|
subject.to_xml.must_equal <<~END
|
188
188
|
<Rwy>
|
189
189
|
<RwyUid>
|
190
|
-
<AhpUid
|
190
|
+
<AhpUid>
|
191
191
|
<codeId>LFNT</codeId>
|
192
192
|
</AhpUid>
|
193
193
|
<txtDesig>16L/34R</txtDesig>
|
@@ -196,7 +196,7 @@ describe AIXM::Component::Runway do
|
|
196
196
|
<Rdn>
|
197
197
|
<RdnUid>
|
198
198
|
<RwyUid>
|
199
|
-
<AhpUid
|
199
|
+
<AhpUid>
|
200
200
|
<codeId>LFNT</codeId>
|
201
201
|
</AhpUid>
|
202
202
|
<txtDesig>16L/34R</txtDesig>
|
@@ -215,7 +215,7 @@ describe AIXM::Component::Runway do
|
|
215
215
|
<RddUid>
|
216
216
|
<RdnUid>
|
217
217
|
<RwyUid>
|
218
|
-
<AhpUid
|
218
|
+
<AhpUid>
|
219
219
|
<codeId>LFNT</codeId>
|
220
220
|
</AhpUid>
|
221
221
|
<txtDesig>16L/34R</txtDesig>
|
@@ -232,7 +232,7 @@ describe AIXM::Component::Runway do
|
|
232
232
|
<Rdn>
|
233
233
|
<RdnUid>
|
234
234
|
<RwyUid>
|
235
|
-
<AhpUid
|
235
|
+
<AhpUid>
|
236
236
|
<codeId>LFNT</codeId>
|
237
237
|
</AhpUid>
|
238
238
|
<txtDesig>16L/34R</txtDesig>
|
@@ -249,7 +249,7 @@ describe AIXM::Component::Runway do
|
|
249
249
|
<RddUid>
|
250
250
|
<RdnUid>
|
251
251
|
<RwyUid>
|
252
|
-
<AhpUid
|
252
|
+
<AhpUid>
|
253
253
|
<codeId>LFNT</codeId>
|
254
254
|
</AhpUid>
|
255
255
|
<txtDesig>16L/34R</txtDesig>
|
@@ -342,7 +342,7 @@ describe AIXM::Component::Runway::Direction do
|
|
342
342
|
<Rdn>
|
343
343
|
<RdnUid>
|
344
344
|
<RwyUid>
|
345
|
-
<AhpUid
|
345
|
+
<AhpUid>
|
346
346
|
<codeId>LFNT</codeId>
|
347
347
|
</AhpUid>
|
348
348
|
<txtDesig>16L/34R</txtDesig>
|
@@ -361,7 +361,7 @@ describe AIXM::Component::Runway::Direction do
|
|
361
361
|
<RddUid>
|
362
362
|
<RdnUid>
|
363
363
|
<RwyUid>
|
364
|
-
<AhpUid
|
364
|
+
<AhpUid>
|
365
365
|
<codeId>LFNT</codeId>
|
366
366
|
</AhpUid>
|
367
367
|
<txtDesig>16L/34R</txtDesig>
|
@@ -385,7 +385,7 @@ describe AIXM::Component::Runway::Direction do
|
|
385
385
|
<Rdn>
|
386
386
|
<RdnUid>
|
387
387
|
<RwyUid>
|
388
|
-
<AhpUid
|
388
|
+
<AhpUid>
|
389
389
|
<codeId>LFNT</codeId>
|
390
390
|
</AhpUid>
|
391
391
|
<txtDesig>16L/34R</txtDesig>
|
@@ -82,7 +82,7 @@ describe AIXM::Document do
|
|
82
82
|
it "builds correct AIXM" do
|
83
83
|
subject.to_xml.must_equal <<~"END"
|
84
84
|
<?xml version="1.0" encoding="UTF-8"?>
|
85
|
-
<AIXM-Snapshot xmlns:xsi="http://www.aixm.aero/schema/4.5/AIXM-Snapshot.xsd" version="4.5" origin="rubygem aixm
|
85
|
+
<AIXM-Snapshot xmlns:xsi="http://www.aixm.aero/schema/4.5/AIXM-Snapshot.xsd" version="4.5" origin="rubygem aixm-#{AIXM::VERSION}" created="2018-01-01T12:00:00+01:00" effective="2018-01-01T12:00:00+01:00">
|
86
86
|
<!-- Organisation: FRANCE -->
|
87
87
|
<Org>
|
88
88
|
<OrgUid>
|
@@ -306,6 +306,8 @@ describe AIXM::Document do
|
|
306
306
|
<txtLocalType>POLYGON</txtLocalType>
|
307
307
|
<txtName>POLYGON AIRSPACE</txtName>
|
308
308
|
<codeClass>C</codeClass>
|
309
|
+
<codeLocInd>XXXX</codeLocInd>
|
310
|
+
<codeActivity>TFC-AD</codeActivity>
|
309
311
|
<codeDistVerUpper>STD</codeDistVerUpper>
|
310
312
|
<valDistVerUpper>65</valDistVerUpper>
|
311
313
|
<uomDistVerUpper>FL</uomDistVerUpper>
|
@@ -363,6 +365,8 @@ describe AIXM::Document do
|
|
363
365
|
<txtLocalType>CIRCLE</txtLocalType>
|
364
366
|
<txtName>CIRCLE AIRSPACE</txtName>
|
365
367
|
<codeClass>C</codeClass>
|
368
|
+
<codeLocInd>XXXX</codeLocInd>
|
369
|
+
<codeActivity>TFC-AD</codeActivity>
|
366
370
|
<codeDistVerUpper>STD</codeDistVerUpper>
|
367
371
|
<valDistVerUpper>65</valDistVerUpper>
|
368
372
|
<uomDistVerUpper>FL</uomDistVerUpper>
|
@@ -420,6 +424,8 @@ describe AIXM::Document do
|
|
420
424
|
</OrgUid>
|
421
425
|
<txtName>DME NAVAID</txtName>
|
422
426
|
<codeChannel>95X</codeChannel>
|
427
|
+
<valGhostFreq>114.8</valGhostFreq>
|
428
|
+
<uomGhostFreq>MHZ</uomGhostFreq>
|
423
429
|
<codeDatum>WGE</codeDatum>
|
424
430
|
<valElev>500</valElev>
|
425
431
|
<uomDistVer>FT</uomDistVer>
|
@@ -629,10 +635,10 @@ describe AIXM::Document do
|
|
629
635
|
it "builds correct OFMX" do
|
630
636
|
subject.to_xml.must_equal <<~"END"
|
631
637
|
<?xml version="1.0" encoding="UTF-8"?>
|
632
|
-
<OFMX-Snapshot xmlns:xsi="http://openflightmaps.org/schema/0/OFMX-Snapshot.xsd" version="0" origin="rubygem aixm
|
638
|
+
<OFMX-Snapshot xmlns:xsi="http://openflightmaps.org/schema/0/OFMX-Snapshot.xsd" version="0" origin="rubygem aixm-#{AIXM::VERSION}" region="LF" namespace="00000000-0000-0000-0000-000000000000" created="2018-01-01T12:00:00+01:00" effective="2018-01-01T12:00:00+01:00">
|
633
639
|
<!-- Organisation: FRANCE -->
|
634
640
|
<Org source="LF|GEN|0.0 FACTORY|0|0">
|
635
|
-
<OrgUid
|
641
|
+
<OrgUid>
|
636
642
|
<txtName>FRANCE</txtName>
|
637
643
|
</OrgUid>
|
638
644
|
<codeId>LF</codeId>
|
@@ -641,13 +647,13 @@ describe AIXM::Document do
|
|
641
647
|
</Org>
|
642
648
|
<!-- Unit: PUJAUT TWR -->
|
643
649
|
<Uni source="LF|GEN|0.0 FACTORY|0|0">
|
644
|
-
<UniUid
|
650
|
+
<UniUid>
|
645
651
|
<txtName>PUJAUT TWR</txtName>
|
646
652
|
</UniUid>
|
647
|
-
<OrgUid
|
653
|
+
<OrgUid>
|
648
654
|
<txtName>FRANCE</txtName>
|
649
655
|
</OrgUid>
|
650
|
-
<AhpUid
|
656
|
+
<AhpUid>
|
651
657
|
<codeId>LFNT</codeId>
|
652
658
|
</AhpUid>
|
653
659
|
<codeType>TWR</codeType>
|
@@ -656,7 +662,7 @@ describe AIXM::Document do
|
|
656
662
|
</Uni>
|
657
663
|
<Ser>
|
658
664
|
<SerUid>
|
659
|
-
<UniUid
|
665
|
+
<UniUid>
|
660
666
|
<txtName>PUJAUT TWR</txtName>
|
661
667
|
</UniUid>
|
662
668
|
<codeType>APP</codeType>
|
@@ -670,7 +676,7 @@ describe AIXM::Document do
|
|
670
676
|
<Fqy>
|
671
677
|
<FqyUid>
|
672
678
|
<SerUid>
|
673
|
-
<UniUid
|
679
|
+
<UniUid>
|
674
680
|
<txtName>PUJAUT TWR</txtName>
|
675
681
|
</UniUid>
|
676
682
|
<codeType>APP</codeType>
|
@@ -695,10 +701,10 @@ describe AIXM::Document do
|
|
695
701
|
</Fqy>
|
696
702
|
<!-- Airport: LFNT AVIGNON-PUJAUT -->
|
697
703
|
<Ahp source="LF|GEN|0.0 FACTORY|0|0">
|
698
|
-
<AhpUid
|
704
|
+
<AhpUid>
|
699
705
|
<codeId>LFNT</codeId>
|
700
706
|
</AhpUid>
|
701
|
-
<OrgUid
|
707
|
+
<OrgUid>
|
702
708
|
<txtName>FRANCE</txtName>
|
703
709
|
</OrgUid>
|
704
710
|
<txtName>AVIGNON-PUJAUT</txtName>
|
@@ -717,7 +723,7 @@ describe AIXM::Document do
|
|
717
723
|
</Ahp>
|
718
724
|
<Rwy>
|
719
725
|
<RwyUid>
|
720
|
-
<AhpUid
|
726
|
+
<AhpUid>
|
721
727
|
<codeId>LFNT</codeId>
|
722
728
|
</AhpUid>
|
723
729
|
<txtDesig>16L/34R</txtDesig>
|
@@ -732,7 +738,7 @@ describe AIXM::Document do
|
|
732
738
|
<Rdn>
|
733
739
|
<RdnUid>
|
734
740
|
<RwyUid>
|
735
|
-
<AhpUid
|
741
|
+
<AhpUid>
|
736
742
|
<codeId>LFNT</codeId>
|
737
743
|
</AhpUid>
|
738
744
|
<txtDesig>16L/34R</txtDesig>
|
@@ -751,7 +757,7 @@ describe AIXM::Document do
|
|
751
757
|
<RddUid>
|
752
758
|
<RdnUid>
|
753
759
|
<RwyUid>
|
754
|
-
<AhpUid
|
760
|
+
<AhpUid>
|
755
761
|
<codeId>LFNT</codeId>
|
756
762
|
</AhpUid>
|
757
763
|
<txtDesig>16L/34R</txtDesig>
|
@@ -768,7 +774,7 @@ describe AIXM::Document do
|
|
768
774
|
<Rdn>
|
769
775
|
<RdnUid>
|
770
776
|
<RwyUid>
|
771
|
-
<AhpUid
|
777
|
+
<AhpUid>
|
772
778
|
<codeId>LFNT</codeId>
|
773
779
|
</AhpUid>
|
774
780
|
<txtDesig>16L/34R</txtDesig>
|
@@ -785,7 +791,7 @@ describe AIXM::Document do
|
|
785
791
|
<RddUid>
|
786
792
|
<RdnUid>
|
787
793
|
<RwyUid>
|
788
|
-
<AhpUid
|
794
|
+
<AhpUid>
|
789
795
|
<codeId>LFNT</codeId>
|
790
796
|
</AhpUid>
|
791
797
|
<txtDesig>16L/34R</txtDesig>
|
@@ -801,7 +807,7 @@ describe AIXM::Document do
|
|
801
807
|
</Rdd>
|
802
808
|
<Tla>
|
803
809
|
<TlaUid>
|
804
|
-
<AhpUid
|
810
|
+
<AhpUid>
|
805
811
|
<codeId>LFNT</codeId>
|
806
812
|
</AhpUid>
|
807
813
|
<txtDesig>H1</txtDesig>
|
@@ -820,7 +826,7 @@ describe AIXM::Document do
|
|
820
826
|
</Tla>
|
821
827
|
<Ahu>
|
822
828
|
<AhuUid>
|
823
|
-
<AhpUid
|
829
|
+
<AhpUid>
|
824
830
|
<codeId>LFNT</codeId>
|
825
831
|
</AhpUid>
|
826
832
|
</AhuUid>
|
@@ -847,13 +853,15 @@ describe AIXM::Document do
|
|
847
853
|
</Ahu>
|
848
854
|
<!-- Airspace: [D] POLYGON AIRSPACE -->
|
849
855
|
<Ase source="LF|GEN|0.0 FACTORY|0|0">
|
850
|
-
<AseUid
|
856
|
+
<AseUid>
|
851
857
|
<codeType>D</codeType>
|
852
858
|
<codeId>PA</codeId>
|
853
859
|
</AseUid>
|
854
860
|
<txtLocalType>POLYGON</txtLocalType>
|
855
861
|
<txtName>POLYGON AIRSPACE</txtName>
|
856
862
|
<codeClass>C</codeClass>
|
863
|
+
<codeLocInd>XXXX</codeLocInd>
|
864
|
+
<codeActivity>TFC-AD</codeActivity>
|
857
865
|
<codeDistVerUpper>STD</codeDistVerUpper>
|
858
866
|
<valDistVerUpper>65</valDistVerUpper>
|
859
867
|
<uomDistVerUpper>FL</uomDistVerUpper>
|
@@ -874,7 +882,7 @@ describe AIXM::Document do
|
|
874
882
|
</Ase>
|
875
883
|
<Abd>
|
876
884
|
<AbdUid>
|
877
|
-
<AseUid
|
885
|
+
<AseUid>
|
878
886
|
<codeType>D</codeType>
|
879
887
|
<codeId>PA</codeId>
|
880
888
|
</AseUid>
|
@@ -905,13 +913,15 @@ describe AIXM::Document do
|
|
905
913
|
</Abd>
|
906
914
|
<!-- Airspace: [D] CIRCLE AIRSPACE -->
|
907
915
|
<Ase source="LF|GEN|0.0 FACTORY|0|0">
|
908
|
-
<AseUid
|
916
|
+
<AseUid>
|
909
917
|
<codeType>D</codeType>
|
910
918
|
<codeId>CA</codeId>
|
911
919
|
</AseUid>
|
912
920
|
<txtLocalType>CIRCLE</txtLocalType>
|
913
921
|
<txtName>CIRCLE AIRSPACE</txtName>
|
914
922
|
<codeClass>C</codeClass>
|
923
|
+
<codeLocInd>XXXX</codeLocInd>
|
924
|
+
<codeActivity>TFC-AD</codeActivity>
|
915
925
|
<codeDistVerUpper>STD</codeDistVerUpper>
|
916
926
|
<valDistVerUpper>65</valDistVerUpper>
|
917
927
|
<uomDistVerUpper>FL</uomDistVerUpper>
|
@@ -932,7 +942,7 @@ describe AIXM::Document do
|
|
932
942
|
</Ase>
|
933
943
|
<Abd>
|
934
944
|
<AbdUid>
|
935
|
-
<AseUid
|
945
|
+
<AseUid>
|
936
946
|
<codeType>D</codeType>
|
937
947
|
<codeId>CA</codeId>
|
938
948
|
</AseUid>
|
@@ -948,7 +958,7 @@ describe AIXM::Document do
|
|
948
958
|
</Abd>
|
949
959
|
<!-- NavigationalAid: [DesignatedPoint:ICAO] DESIGNATED POINT NAVAID -->
|
950
960
|
<Dpn source="LF|GEN|0.0 FACTORY|0|0">
|
951
|
-
<DpnUid
|
961
|
+
<DpnUid>
|
952
962
|
<codeId>DDD</codeId>
|
953
963
|
<geoLat>47.85916667N</geoLat>
|
954
964
|
<geoLong>007.56000000E</geoLong>
|
@@ -960,16 +970,18 @@ describe AIXM::Document do
|
|
960
970
|
</Dpn>
|
961
971
|
<!-- NavigationalAid: [DME] DME NAVAID -->
|
962
972
|
<Dme source="LF|GEN|0.0 FACTORY|0|0">
|
963
|
-
<DmeUid
|
973
|
+
<DmeUid>
|
964
974
|
<codeId>MMM</codeId>
|
965
975
|
<geoLat>47.85916667N</geoLat>
|
966
976
|
<geoLong>007.56000000E</geoLong>
|
967
977
|
</DmeUid>
|
968
|
-
<OrgUid
|
978
|
+
<OrgUid>
|
969
979
|
<txtName>FRANCE</txtName>
|
970
980
|
</OrgUid>
|
971
981
|
<txtName>DME NAVAID</txtName>
|
972
982
|
<codeChannel>95X</codeChannel>
|
983
|
+
<valGhostFreq>114.8</valGhostFreq>
|
984
|
+
<uomGhostFreq>MHZ</uomGhostFreq>
|
973
985
|
<codeDatum>WGE</codeDatum>
|
974
986
|
<valElev>500</valElev>
|
975
987
|
<uomDistVer>FT</uomDistVer>
|
@@ -980,12 +992,12 @@ describe AIXM::Document do
|
|
980
992
|
</Dme>
|
981
993
|
<!-- NavigationalAid: [Marker:O] MARKER NAVAID -->
|
982
994
|
<Mkr source="LF|GEN|0.0 FACTORY|0|0">
|
983
|
-
<MkrUid
|
995
|
+
<MkrUid>
|
984
996
|
<codeId>---</codeId>
|
985
997
|
<geoLat>47.85916667N</geoLat>
|
986
998
|
<geoLong>007.56000000E</geoLong>
|
987
999
|
</MkrUid>
|
988
|
-
<OrgUid
|
1000
|
+
<OrgUid>
|
989
1001
|
<txtName>FRANCE</txtName>
|
990
1002
|
</OrgUid>
|
991
1003
|
<codePsnIls>O</codePsnIls>
|
@@ -1002,12 +1014,12 @@ describe AIXM::Document do
|
|
1002
1014
|
</Mkr>
|
1003
1015
|
<!-- NavigationalAid: [NDB:B] NDB NAVAID -->
|
1004
1016
|
<Ndb source="LF|GEN|0.0 FACTORY|0|0">
|
1005
|
-
<NdbUid
|
1017
|
+
<NdbUid>
|
1006
1018
|
<codeId>NNN</codeId>
|
1007
1019
|
<geoLat>47.85916667N</geoLat>
|
1008
1020
|
<geoLong>007.56000000E</geoLong>
|
1009
1021
|
</NdbUid>
|
1010
|
-
<OrgUid
|
1022
|
+
<OrgUid>
|
1011
1023
|
<txtName>FRANCE</txtName>
|
1012
1024
|
</OrgUid>
|
1013
1025
|
<txtName>NDB NAVAID</txtName>
|
@@ -1024,16 +1036,18 @@ describe AIXM::Document do
|
|
1024
1036
|
</Ndb>
|
1025
1037
|
<!-- NavigationalAid: [TACAN] TACAN NAVAID -->
|
1026
1038
|
<Tcn source="LF|GEN|0.0 FACTORY|0|0">
|
1027
|
-
<TcnUid
|
1039
|
+
<TcnUid>
|
1028
1040
|
<codeId>TTT</codeId>
|
1029
1041
|
<geoLat>47.85916667N</geoLat>
|
1030
1042
|
<geoLong>007.56000000E</geoLong>
|
1031
1043
|
</TcnUid>
|
1032
|
-
<OrgUid
|
1044
|
+
<OrgUid>
|
1033
1045
|
<txtName>FRANCE</txtName>
|
1034
1046
|
</OrgUid>
|
1035
1047
|
<txtName>TACAN NAVAID</txtName>
|
1036
1048
|
<codeChannel>29X</codeChannel>
|
1049
|
+
<valGhostFreq>109.2</valGhostFreq>
|
1050
|
+
<uomGhostFreq>MHZ</uomGhostFreq>
|
1037
1051
|
<codeDatum>WGE</codeDatum>
|
1038
1052
|
<valElev>500</valElev>
|
1039
1053
|
<uomDistVer>FT</uomDistVer>
|
@@ -1044,12 +1058,12 @@ describe AIXM::Document do
|
|
1044
1058
|
</Tcn>
|
1045
1059
|
<!-- NavigationalAid: [VOR:VOR] VOR NAVAID -->
|
1046
1060
|
<Vor source="LF|GEN|0.0 FACTORY|0|0">
|
1047
|
-
<VorUid
|
1061
|
+
<VorUid>
|
1048
1062
|
<codeId>VVV</codeId>
|
1049
1063
|
<geoLat>47.85916667N</geoLat>
|
1050
1064
|
<geoLong>007.56000000E</geoLong>
|
1051
1065
|
</VorUid>
|
1052
|
-
<OrgUid
|
1066
|
+
<OrgUid>
|
1053
1067
|
<txtName>FRANCE</txtName>
|
1054
1068
|
</OrgUid>
|
1055
1069
|
<txtName>VOR NAVAID</txtName>
|
@@ -1067,12 +1081,12 @@ describe AIXM::Document do
|
|
1067
1081
|
</Vor>
|
1068
1082
|
<!-- NavigationalAid: [VOR:VOR] VOR/DME NAVAID -->
|
1069
1083
|
<Vor source="LF|GEN|0.0 FACTORY|0|0">
|
1070
|
-
<VorUid
|
1084
|
+
<VorUid>
|
1071
1085
|
<codeId>VDD</codeId>
|
1072
1086
|
<geoLat>47.85916667N</geoLat>
|
1073
1087
|
<geoLong>007.56000000E</geoLong>
|
1074
1088
|
</VorUid>
|
1075
|
-
<OrgUid
|
1089
|
+
<OrgUid>
|
1076
1090
|
<txtName>FRANCE</txtName>
|
1077
1091
|
</OrgUid>
|
1078
1092
|
<txtName>VOR/DME NAVAID</txtName>
|
@@ -1090,15 +1104,15 @@ describe AIXM::Document do
|
|
1090
1104
|
</Vor>
|
1091
1105
|
<!-- NavigationalAid: [DME] VOR/DME NAVAID -->
|
1092
1106
|
<Dme>
|
1093
|
-
<DmeUid
|
1107
|
+
<DmeUid>
|
1094
1108
|
<codeId>VDD</codeId>
|
1095
1109
|
<geoLat>47.85916667N</geoLat>
|
1096
1110
|
<geoLong>007.56000000E</geoLong>
|
1097
1111
|
</DmeUid>
|
1098
|
-
<OrgUid
|
1112
|
+
<OrgUid>
|
1099
1113
|
<txtName>FRANCE</txtName>
|
1100
1114
|
</OrgUid>
|
1101
|
-
<VorUid
|
1115
|
+
<VorUid>
|
1102
1116
|
<codeId>VDD</codeId>
|
1103
1117
|
<geoLat>47.85916667N</geoLat>
|
1104
1118
|
<geoLong>007.56000000E</geoLong>
|
@@ -1115,12 +1129,12 @@ describe AIXM::Document do
|
|
1115
1129
|
</Dme>
|
1116
1130
|
<!-- NavigationalAid: [VOR:VOR] VORTAC NAVAID -->
|
1117
1131
|
<Vor source="LF|GEN|0.0 FACTORY|0|0">
|
1118
|
-
<VorUid
|
1132
|
+
<VorUid>
|
1119
1133
|
<codeId>VTT</codeId>
|
1120
1134
|
<geoLat>47.85916667N</geoLat>
|
1121
1135
|
<geoLong>007.56000000E</geoLong>
|
1122
1136
|
</VorUid>
|
1123
|
-
<OrgUid
|
1137
|
+
<OrgUid>
|
1124
1138
|
<txtName>FRANCE</txtName>
|
1125
1139
|
</OrgUid>
|
1126
1140
|
<txtName>VORTAC NAVAID</txtName>
|
@@ -1138,15 +1152,15 @@ describe AIXM::Document do
|
|
1138
1152
|
</Vor>
|
1139
1153
|
<!-- NavigationalAid: [TACAN] VORTAC NAVAID -->
|
1140
1154
|
<Tcn>
|
1141
|
-
<TcnUid
|
1155
|
+
<TcnUid>
|
1142
1156
|
<codeId>VTT</codeId>
|
1143
1157
|
<geoLat>47.85916667N</geoLat>
|
1144
1158
|
<geoLong>007.56000000E</geoLong>
|
1145
1159
|
</TcnUid>
|
1146
|
-
<OrgUid
|
1160
|
+
<OrgUid>
|
1147
1161
|
<txtName>FRANCE</txtName>
|
1148
1162
|
</OrgUid>
|
1149
|
-
<VorUid
|
1163
|
+
<VorUid>
|
1150
1164
|
<codeId>VTT</codeId>
|
1151
1165
|
<geoLat>47.85916667N</geoLat>
|
1152
1166
|
<geoLong>007.56000000E</geoLong>
|