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
|
# File 'lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb', line 16
def self.unpack(hBBox, responseObj, inContext = nil)
@MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson
if hBBox.empty?
@MessagePath.issueWarning(70, responseObj, inContext)
return nil
end
intMetadataClass = InternalMetadata.new
intBBox = intMetadataClass.newBoundingBox
if hBBox.has_key?('westLongitude')
intBBox[:westLongitude] = hBBox['westLongitude']
end
if intBBox[:westLongitude].nil? || intBBox[:westLongitude] == ''
@MessagePath.issueError(71, responseObj, inContext)
elsif intBBox[:westLongitude].abs > 180
@MessagePath.issueError(72, responseObj, inContext)
end
if hBBox.has_key?('eastLongitude')
intBBox[:eastLongitude] = hBBox['eastLongitude']
end
if intBBox[:eastLongitude].nil? || intBBox[:eastLongitude] == ''
@MessagePath.issueError(73, responseObj, inContext)
elsif intBBox[:eastLongitude].abs > 180
@MessagePath.issueError(72, responseObj, inContext)
end
if hBBox.has_key?('southLatitude')
intBBox[:southLatitude] = hBBox['southLatitude']
end
if intBBox[:southLatitude].nil? || intBBox[:southLatitude] == ''
@MessagePath.issueError(74, responseObj, inContext)
elsif intBBox[:southLatitude].abs > 90
@MessagePath.issueError(75, responseObj, inContext)
end
if hBBox.has_key?('northLatitude')
intBBox[:northLatitude] = hBBox['northLatitude']
end
if intBBox[:northLatitude].nil? || intBBox[:northLatitude] == ''
@MessagePath.issueError(76, responseObj, inContext)
elsif intBBox[:northLatitude].abs > 90
@MessagePath.issueError(75, responseObj, inContext)
end
if hBBox.has_key?('minimumAltitude')
unless hBBox['minimumAltitude'].nil? || hBBox['minimumAltitude'] == ''
intBBox[:minimumAltitude] = hBBox['minimumAltitude']
end
end
if hBBox.has_key?('maximumAltitude')
unless hBBox['maximumAltitude'].nil? || hBBox['maximumAltitude'] == ''
intBBox[:maximumAltitude] = hBBox['maximumAltitude']
end
end
if hBBox.has_key?('unitsOfAltitude')
unless hBBox['unitsOfAltitude'].nil? || hBBox['unitsOfAltitude'] == ''
intBBox[:unitsOfAltitude] = hBBox['unitsOfAltitude']
end
end
unless intBBox[:minimumAltitude].nil? && intBBox[:maximumAltitude].nil?
if intBBox[:unitsOfAltitude].nil? || intBBox[:unitsOfAltitude] == ''
@MessagePath.issueError(77, responseObj, inContext)
end
end
return intBBox
end
|