-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcountry_bboxes.rb
More file actions
224 lines (222 loc) · 9.96 KB
/
Copy pathcountry_bboxes.rb
File metadata and controls
224 lines (222 loc) · 9.96 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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
module CountryBboxes
BBOXES = {
"afghanistan" => [60.53, 29.32, 75.16, 38.49],
"albania" => [19.3, 39.62, 21.02, 42.69],
"algeria" => [-8.68, 19.06, 12.0, 37.12],
"angola" => [11.64, -17.93, 24.08, -4.44],
"antarctica" => [-180.0, -90.0, 180.0, -63.27],
"argentina" => [-73.42, -55.25, -53.63, -21.83],
"armenia" => [43.58, 38.74, 46.51, 41.25],
"australia" => [113.34, -43.63, 153.57, -10.67],
"austria" => [9.48, 46.43, 16.98, 49.04],
"azerbaijan" => [44.79, 38.27, 50.39, 41.86],
"bahamas" => [-78.98, 23.71, -77.0, 27.04],
"bangladesh" => [88.08, 20.67, 92.67, 26.45],
"belarus" => [23.2, 51.32, 32.69, 56.17],
"belgium" => [2.51, 49.53, 6.16, 51.48],
"belize" => [-89.23, 15.89, -88.11, 18.5],
"benin" => [0.77, 6.14, 3.8, 12.24],
"bhutan" => [88.81, 26.72, 92.1, 28.3],
"bolivia" => [-69.59, -22.87, -57.5, -9.76],
"bosniaandherzegovina" => [15.75, 42.65, 19.6, 45.23],
"botswana" => [19.9, -26.83, 29.43, -17.66],
"brazil" => [-73.99, -33.77, -34.73, 5.24],
"brunei" => [114.2, 4.01, 115.45, 5.45],
"bulgaria" => [22.38, 41.23, 28.56, 44.23],
"burkinafaso" => [-5.47, 9.61, 2.18, 15.12],
"burundi" => [29.02, -4.5, 30.75, -2.35],
"cambodia" => [102.35, 10.49, 107.61, 14.57],
"cameroon" => [8.49, 1.73, 16.01, 12.86],
"canada" => [-141.0, 41.68, -52.65, 73.23],
"centralafricanrepublic" => [14.46, 2.27, 27.37, 11.14],
"chad" => [13.54, 7.42, 23.89, 23.41],
"chile" => [-75.64, -55.61, -66.96, -17.58],
"china" => [73.68, 18.2, 135.03, 53.46],
"colombia" => [-78.99, -4.3, -66.88, 12.44],
"congobrazzaville" => [11.09, -5.04, 18.45, 3.73],
"congokinshasa" => [12.18, -13.26, 31.17, 5.26],
"costarica" => [-85.94, 8.23, -82.55, 11.22],
"croatia" => [13.66, 42.48, 19.39, 46.5],
"cuba" => [-84.97, 19.86, -74.18, 23.19],
"cyprus" => [32.26, 34.57, 34.0, 35.17],
"czechrepublic" => [12.24, 48.56, 18.85, 51.12],
"denmark" => [8.09, 54.8, 12.69, 57.73],
"djibouti" => [41.66, 10.93, 43.32, 12.7],
"dominicanrepublic" => [-71.95, 17.6, -68.32, 19.88],
"easttimor" => [124.97, -9.39, 127.34, -8.27],
"ecuador" => [-80.97, -4.96, -75.23, 1.38],
"egypt" => [24.7, 22.0, 36.87, 31.59],
"elsalvador" => [-90.1, 13.15, -87.72, 14.42],
"equatorialguinea" => [9.31, 1.01, 11.29, 2.28],
"eritrea" => [36.32, 12.46, 43.08, 18.0],
"estonia" => [23.34, 57.47, 28.13, 59.61],
"ethiopia" => [32.95, 3.42, 47.79, 14.96],
"falklandislands" => [-61.2, -52.3, -57.75, -51.1],
"fiji" => [-180.0, -18.29, 180.0, -16.02],
"finland" => [20.65, 59.85, 31.52, 70.16],
"france" => [-5.0, 42.5, 9.56, 51.15],
"frenchsouthernterritories" => [68.72, -49.78, 70.56, -48.63],
"gabon" => [8.8, -3.98, 14.43, 2.33],
"gambia" => [-16.84, 13.13, -13.84, 13.88],
"georgia" => [39.96, 41.06, 46.64, 43.55],
"germany" => [5.99, 47.3, 15.02, 54.98],
"ghana" => [-3.24, 4.71, 1.06, 11.1],
"greece" => [20.15, 34.92, 26.6, 41.83],
"greenland" => [-73.3, 60.04, -12.21, 83.65],
"guatemala" => [-92.23, 13.74, -88.23, 17.82],
"guinea" => [-15.13, 7.31, -7.83, 12.59],
"guineabissau" => [-16.68, 11.04, -13.7, 12.63],
"guyana" => [-61.41, 1.27, -56.54, 8.37],
"haiti" => [-74.46, 18.03, -71.62, 19.92],
"honduras" => [-89.35, 12.98, -83.15, 16.01],
"hungary" => [16.2, 45.76, 22.71, 48.62],
"iceland" => [-24.33, 63.5, -13.61, 66.53],
"india" => [68.18, 7.97, 97.4, 35.49],
"indonesia" => [95.29, -10.36, 141.03, 5.48],
"iran" => [44.11, 25.08, 63.32, 39.71],
"iraq" => [38.79, 29.1, 48.57, 37.39],
"ireland" => [-9.98, 51.67, -6.03, 55.13],
"israel" => [34.27, 29.5, 35.84, 33.28],
"italy" => [6.75, 36.62, 18.48, 47.12],
"ivorycoast" => [-8.6, 4.34, -2.56, 10.52],
"jamaica" => [-78.34, 17.7, -76.2, 18.52],
"japan" => [129.41, 31.03, 145.54, 45.55],
"jordan" => [34.92, 29.2, 39.2, 33.38],
"kazakhstan" => [46.47, 40.66, 87.36, 55.39],
"kenya" => [33.89, -4.68, 41.86, 5.51],
"kuwait" => [46.57, 28.53, 48.42, 30.06],
"kyrgyzstan" => [69.46, 39.28, 80.26, 43.3],
"laos" => [100.12, 13.88, 107.56, 22.46],
"latvia" => [21.06, 55.62, 28.18, 57.97],
"lebanon" => [35.13, 33.09, 36.61, 34.64],
"lesotho" => [27.0, -30.65, 29.33, -28.65],
"liberia" => [-11.44, 4.36, -7.54, 8.54],
"libya" => [9.32, 19.58, 25.16, 33.14],
"lithuania" => [21.06, 53.91, 26.59, 56.37],
"luxembourg" => [5.67, 49.44, 6.24, 50.13],
"macedonia" => [20.46, 40.84, 22.95, 42.32],
"madagascar" => [43.25, -25.6, 50.48, -12.04],
"malawi" => [32.69, -16.8, 35.77, -9.23],
"malaysia" => [100.09, 0.77, 119.18, 6.93],
"mali" => [-12.17, 10.1, 4.27, 24.97],
"mauritania" => [-17.06, 14.62, -4.92, 27.4],
"mexico" => [-117.13, 14.54, -86.81, 32.72],
"moldova" => [26.62, 45.49, 30.02, 48.47],
"mongolia" => [87.75, 41.6, 119.77, 52.05],
"montenegro" => [18.45, 41.88, 20.34, 43.52],
"morocco" => [-17.02, 21.42, -1.12, 35.76],
"mozambique" => [30.18, -26.74, 40.78, -10.32],
"myanmar" => [92.3, 9.93, 101.18, 28.34],
"namibia" => [11.73, -29.05, 25.08, -16.94],
"nepal" => [80.09, 26.4, 88.17, 30.42],
"netherlands" => [3.31, 50.8, 7.09, 53.51],
"newcaledonia" => [164.03, -22.4, 167.12, -20.11],
"newzealand" => [166.51, -46.64, 178.52, -34.45],
"nicaragua" => [-87.67, 10.73, -83.15, 15.02],
"niger" => [0.3, 11.66, 15.9, 23.47],
"nigeria" => [2.69, 4.24, 14.58, 13.87],
"northkorea" => [124.27, 37.67, 130.78, 42.99],
"norway" => [4.99, 58.08, 31.29, 70.92],
"oman" => [52.0, 16.65, 59.81, 26.4],
"pakistan" => [60.87, 23.69, 77.84, 37.13],
"panama" => [-82.97, 7.22, -77.24, 9.61],
"papuanewguinea" => [141.0, -10.65, 156.02, -2.5],
"paraguay" => [-62.69, -27.55, -54.29, -19.34],
"peru" => [-81.41, -18.35, -68.67, -0.06],
"philippines" => [117.17, 5.58, 126.54, 18.51],
"poland" => [14.07, 49.03, 24.03, 54.85],
"portugal" => [-9.53, 36.84, -6.39, 42.28],
"puertorico" => [-67.24, 17.95, -65.59, 18.52],
"qatar" => [50.74, 24.56, 51.61, 26.11],
"romania" => [20.22, 43.69, 29.63, 48.22],
"russia" => [-180.0, 41.15, 180.0, 81.25],
"rwanda" => [29.02, -2.92, 30.82, -1.13],
"saudiarabia" => [34.63, 16.35, 55.67, 32.16],
"senegal" => [-17.63, 12.33, -11.47, 16.6],
"serbia" => [18.83, 42.25, 22.99, 46.17],
"sierraleone" => [-13.25, 6.79, -10.23, 10.05],
"slovakia" => [16.88, 47.76, 22.56, 49.57],
"slovenia" => [13.7, 45.45, 16.56, 46.85],
"solomonislands" => [156.49, -10.83, 162.4, -6.6],
"somalia" => [40.98, -1.68, 51.13, 12.02],
"southafrica" => [16.34, -34.82, 32.83, -22.09],
"southkorea" => [126.12, 34.39, 129.47, 38.61],
"southsudan" => [23.89, 3.51, 35.3, 12.25],
"spain" => [-9.39, 35.95, 3.04, 43.75],
"srilanka" => [79.7, 5.97, 81.79, 9.82],
"sudan" => [21.94, 8.62, 38.41, 22.0],
"suriname" => [-58.04, 1.82, -53.96, 6.03],
"swaziland" => [30.68, -27.29, 32.07, -25.66],
"sweden" => [11.03, 55.36, 23.9, 69.11],
"switzerland" => [6.02, 45.78, 10.44, 47.83],
"syria" => [35.7, 32.31, 42.35, 37.23],
"taiwan" => [120.11, 21.97, 121.95, 25.3],
"tajikistan" => [67.44, 36.74, 74.98, 40.96],
"tanzania" => [29.34, -11.72, 40.32, -0.95],
"thailand" => [97.38, 5.69, 105.59, 20.42],
"togo" => [-0.05, 5.93, 1.87, 11.02],
"trinidadandtobago" => [-61.95, 10.0, -60.9, 10.89],
"tunisia" => [7.52, 30.31, 11.49, 37.35],
"turkey" => [26.04, 35.82, 44.79, 42.14],
"turkmenistan" => [52.5, 35.27, 66.55, 42.75],
"uganda" => [29.58, -1.44, 35.04, 4.25],
"ukraine" => [22.09, 44.36, 40.08, 52.34],
"unitedarabemirates" => [51.58, 22.5, 56.4, 26.06],
"unitedkingdom" => [-7.57, 49.96, 1.68, 58.64],
"unitedstates" => [-125.0, 25.0, -66.96, 49.5],
"uruguay" => [-58.43, -34.95, -53.21, -30.11],
"uzbekistan" => [55.93, 37.14, 73.06, 45.59],
"vanuatu" => [166.63, -16.6, 167.84, -14.63],
"venezuela" => [-73.3, 0.72, -59.76, 12.16],
"vietnam" => [102.17, 8.6, 109.34, 23.35],
"westbank" => [34.93, 31.35, 35.55, 32.53],
"yemen" => [42.6, 12.59, 53.11, 19.0],
"zambia" => [21.89, -17.96, 33.49, -8.24],
"zimbabwe" => [25.26, -22.27, 32.85, -15.51],
}.freeze
def self.bbox_for(country_name)
normalized = country_name.to_s.downcase.gsub(/[^a-z0-9]/, "")
# Direct lookup or alias lookup
BBOXES[normalized] || alias_for(normalized)
end
def self.alias_for(name)
case name
when /congo.*democratic/i, /democratic.*congo/i, /cod/i
BBOXES["congothe_democratic_republic_of_the"] || BBOXES["congodemocraticrepublicofthe"] || BBOXES["congo"]
when /venezuela/i
BBOXES["venezuelabolivarianrepublicof"] || BBOXES["venezuela"]
when /bolivia/i
BBOXES["boliviaplurinationalstateof"] || BBOXES["bolivia"]
when /syria/i
BBOXES["syrianarabrepublic"] || BBOXES["syria"]
when /iran/i
BBOXES["iranislamicrepublicof"] || BBOXES["iran"]
when /viet.*nam/i, /vietnam/i
BBOXES["vietnam"]
when /korea.*dem/i, /north.*korea/i, /prk/i
BBOXES["koreanorth"] || BBOXES["democraticepeoplesrepublicofkorea"]
when /korea.*rep/i, /south.*korea/i, /kor/i
BBOXES["koreasouth"] || BBOXES["republicofkorea"]
when /russia/i, /rus/i
BBOXES["russianfederation"] || BBOXES["russia"]
when /moldova/i
BBOXES["moldovarepublicof"] || BBOXES["moldova"]
when /palestine/i, /pse/i
BBOXES["stateofpalestine"] || BBOXES["palestine"]
when /tanzania/i, /tza/i
BBOXES["tanzaniaunitedrepublicof"] || BBOXES["tanzania"]
when /lao/i, /lao/i
BBOXES["laopeoplesdemocraticrepublic"] || BBOXES["laos"]
when /turkey/i, /turkiye/i, /tur/i
BBOXES["turkiye"] || BBOXES["turkey"]
when /cote.*d.*ivoire/i, /ivory.*coast/i, /civ/i
BBOXES["cotedivoire"] || BBOXES["cote_divoire"]
when /micronesia/i, /fsm/i
BBOXES["micronesiafederatedstatesof"] || BBOXES["micronesia"]
when /world/i, /global/i
[-180.0, -90.0, 180.0, 90.0]
else
nil
end
end
end