aixm 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|