seaports 1.0.0 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58b616c89654cb06c7c095c1106a16bc7164835cd6cedeaf40e10f22b23089be
4
- data.tar.gz: 9366dc14c643f638d73d6a288c2b10442698a03219afa0bc241a41e2e672b7f9
3
+ metadata.gz: be893fc9097906843b626465a1e53ab5750fa141fe17160dfe4e86a96c3c7010
4
+ data.tar.gz: d7776183226b7f0b575ab4bdffab1f3e1581c716f3647150070448e61e5ce968
5
5
  SHA512:
6
- metadata.gz: ae4bd49fb6adad08534857a84df567724347dc21d7d3ef7163f3760f9e0ac470b78e15db27ae35fbe60bdd8d63a25a1ab3d12da5cedbfdeb827ca6de45f8b5cc
7
- data.tar.gz: 134cc3f0980934cc76e251719a1ea47f0c142975c792485c4355e8ced35f25f3f9b47298c321c20f80e15ddbe80b22af0592ef212b6aaa32f0980c59c2b048e5
6
+ metadata.gz: 0bd5ae1b682dfa211f0f1ba1a841003a10197d4314f028605fbdcb48f4c1b1a93bbacf7ed8bd8849ce908b3f7d7577e20eaa048244a6de3060c2b30b0a47ca64
7
+ data.tar.gz: ad5c38ea03ee6cf88a03a1ef9d0ac11514b2128e6aafc0aabe47c55724797f50718acc5b867ca2bf719cac335bec6ead8281e0714ccda6e72bc5f219950bcaa8
data/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  Every entry below the first is a UN/LOCODE refresh, opened as a pull request by
4
4
  `.github/workflows/refresh.yml` and merged by a person.
5
5
 
6
+ ## 1.1.0 — 2026-10-19
7
+
8
+ UN/LOCODE release unknown. 17527 sea ports (17520 before): 7 added, 0 removed, 1 renamed, 83 repositioned.
9
+
6
10
  ## 1.0.0 — 2026-08-21
7
11
 
8
12
  First release. Extracted from the Trackberry application, where this table
data/README.md CHANGED
@@ -73,6 +73,42 @@ from a three-character carrier code, which is a heuristic: a code that is not a
73
73
  locode tail could pair with a country to form a valid-looking locode for some
74
74
  inland village, and a table of ports is far less likely to name it.
75
75
 
76
+ ## What it costs
77
+
78
+ A lookup is a hash fetch. The table is parsed once, on the first lookup rather
79
+ than at require time, and after that nothing touches the disk again.
80
+
81
+ | | |
82
+ | --- | --- |
83
+ | lookup | **0.31 µs** — about 3.2M per second |
84
+ | miss | 0.28 µs |
85
+ | malformed input | 0.25 µs — rejected on shape before the table is consulted |
86
+ | first lookup, which parses the table | ~140 ms, once per process |
87
+ | resident table | 3.9 MB |
88
+
89
+ Measured on Ruby 4.0, Apple Silicon, against the shipped 468 KB table. Reading
90
+ the file off disk is 0.4 ms of that first 140 ms; the rest is CSV parsing and
91
+ building the 17,520 objects, so it is CPU rather than I/O.
92
+
93
+ There is no database, no ActiveRecord, and no query per lookup. That is worth
94
+ saying because the alternative approach in this corner of the ecosystem is to
95
+ ship a SQLite file and read it through ActiveRecord, which puts a second
96
+ database connection and a version-pinned ORM into the dependency graph of an
97
+ application that only wanted to turn `CNXMG` into `Xiamen Pt`. A CSV and a hash
98
+ answer the same question with one dependency and no connection.
99
+
100
+ Nothing here is cached, because there is nothing left to cache: the table
101
+ already is the cache. A `Rails.cache` round trip costs around a millisecond,
102
+ which is some three thousand times slower than the lookup it would be caching.
103
+
104
+ The one cost worth managing is that first 140 ms, and the fix is to move it off
105
+ the request path rather than to cache it:
106
+
107
+ ```ruby
108
+ # config/initializers/seaports.rb
109
+ Rails.application.config.after_initialize { Seaports.count }
110
+ ```
111
+
76
112
  ## How the table stays current
77
113
 
78
114
  UNECE republishes twice a year and does not announce it. A scheduled workflow
@@ -1,11 +1,14 @@
1
1
  locode,name,lat,lng
2
+ AEAAN,Al Ain,24.0167,55.55
2
3
  AEABU,Abu al Bukhoosh,25.4833,53.1333
3
4
  AEAJM,Ajman,,
4
5
  AEAJP,Al Jeer Port,26.0333,56.05
6
+ AEALF,Al Faya,24.8,55.0667
5
7
  AEAMF,Musaffah,24.3833,54.4833
6
8
  AEAMU,Abu Musa,25.8667,55.0167
7
9
  AEARP,Ahmed Bin Rashid Port,25.5333,55.55
8
10
  AEAUH,Abu Dhabi,24.4667,54.3667
11
+ AECAD,Abu Dhabi Industrial City (ICAD),24.3333,54.4333
9
12
  AEDAS,Das Island,,
10
13
  AEDBP,Dibba,25.6167,56.2667
11
14
  AEDUJ,The Palm Jumeirah,,
@@ -14,8 +17,11 @@ AEEND,Esnnad,24.3167,54.45
14
17
  AEFAT,Fateh Terminal,,
15
18
  AEFJR,Al Fujayrah,25.1167,56.3333
16
19
  AEFRP,Free Port,25.25,55.25
20
+ AEGTT,Al Ghuwaifat,24.1333,51.6167
21
+ AEHAB,Habshan,23.9333,53.6333
17
22
  AEHSN,Hassyan,24.9,54.9
18
23
  AEHTL,Hulaylah Terminal,25.9833,55.9333
24
+ AEHYR,Al Hiyar,24.6,55.75
19
25
  AEHZP,Hamriya Free Zone Port,25.3,55.3167
20
26
  AEJAZ,Al Jazeera Port,25.7167,55.8
21
27
  AEJEA,Jebel Ali,,
@@ -37,9 +43,10 @@ AERKP,Rak Khor Port,25.8167,55.95
37
43
  AERKT,Ras al Khaimah,25.7833,55.95
38
44
  AERMC,Rak Maritime City,25.95,56.05
39
45
  AERUW,Ar Ruways,24.1167,52.7333
40
- AERWP,Ruwais Port,24.1,52.7167
46
+ AERWP,Ruwais,24.1,52.7167
41
47
  AESHJ,Sharjah,25.35,55.3833
42
48
  AESID,Sadiyat Island,24.5333,54.4
49
+ AESIL,Al Sila,24.0667,51.75
43
50
  AEULR,Umm Al Nar,24.4333,54.5
44
51
  AEYAS,Yas Island,24.3167,52.6
45
52
  AEZUR,Zirku Island,24.8833,53.0667
@@ -241,7 +248,7 @@ ARVMD,Villa Mercedes,,
241
248
  ARVTT,Villa del Totoral,,
242
249
  ARXPD,San Pedro,,
243
250
  ARZAE,Zárate,-34.1,-59.0333
244
- ASPPG,Pago Pago,14.2667,-170.7
251
+ ASPPG,Pago Pago,-14.2667,-170.7
245
252
  AT7PZ,Prinzersdorf,48.2,15.5167
246
253
  ATATK,Paternion,46.7,13.6333
247
254
  ATATN,Asten,48.2167,14.4
@@ -254,7 +261,7 @@ ATBRZ,Bregenz,47.5,9.7667
254
261
  ATDFC,Engerwitzdorf,48.35,14.45
255
262
  ATDKZ,Deutschkreutz,47.6,16.6333
256
263
  ATDOF,Hadersdorf,48.45,15.7167
257
- ATDRA,Drasenhofen,48.75,-16.65
264
+ ATDRA,Drasenhofen,48.75,16.65
258
265
  ATDRO,Dross,48.45,15.5667
259
266
  ATDUE,Dürnstein,48.3833,15.5167
260
267
  ATDWA,Deutsch Wagram,48.3,16.5667
@@ -278,7 +285,7 @@ ATGDN,Gmunden,47.9167,13.8
278
285
  ATGFS,Greifenstein,48.3333,16.2333
279
286
  ATGGU,Oggau,47.8333,16.6667
280
287
  ATGHH,Haugsdorf,48.7,16.0667
281
- ATGHJ,Krustetten,48.3667,-154.0
288
+ ATGHJ,Krustetten,48.3667,15.6667
282
289
  ATGRN,Grein,48.2167,14.8333
283
290
  ATGSN,Gutenstein,47.8667,15.8833
284
291
  ATHKM,Hadersdorf-Kammern,48.45,15.7167
@@ -574,7 +581,7 @@ AUMDC,Mordialloc,-38.0167,145.0833
574
581
  AUMEL,Melbourne,-37.8167,144.9667
575
582
  AUMHW,Mount Hawthorn,-31.9167,115.8333
576
583
  AUMIB,Milner Bay,,
577
- AUMID,Midland,31.8833,-115.9833
584
+ AUMID,Midland,-31.8833,116.0
578
585
  AUMIL,Milperra,,
579
586
  AUMKY,Mackay,-21.15,149.2
580
587
  AUMLI,Melville Island,-11.55,130.9333
@@ -2143,7 +2150,7 @@ CAZFT,Forest,43.1,-82.0
2143
2150
  CAZTI,Saint-Tite,46.7333,-72.5667
2144
2151
  CAZYE,Yamachiche,46.2833,-72.8333
2145
2152
  CCCCK,Cocos Islands,-12.0,96.8333
2146
- CDBNW,Banana,6.0167,12.4
2153
+ CDBNW,Banana,-6.0167,12.4
2147
2154
  CDBOA,Boma,,
2148
2155
  CDFIH,Kinshasa,,
2149
2156
  CDMAT,Matadi,,
@@ -2154,7 +2161,7 @@ CGDJE,Djeno Terminal,,
2154
2161
  CGMOS,Mossaka,-1.2167,16.8
2155
2162
  CGNKO,N'Kossa Terminal,-5.2333,11.6
2156
2163
  CGOUE,Ouesso,,
2157
- CGOYO,Oyo,1.0,15.9
2164
+ CGOYO,Oyo,-1.1667,15.9667
2158
2165
  CGPNR,Pointe Noire,-4.8,11.85
2159
2166
  CGYOM,Yombo,-2.9333,12.7
2160
2167
  CHBA8,Ballwil,47.15,8.3167
@@ -3309,7 +3316,7 @@ CZDOL,Dolní Lhota,49.1333,17.8167
3309
3316
  CZDRN,Drnholec,48.85,16.5
3310
3317
  CZDRO,Dobromerice,50.3667,13.8
3311
3318
  CZDRS,Dobris,49.7833,14.1667
3312
- CZG44,Chvalatice,48.95,-154.8333
3319
+ CZG44,Chvalatice,48.95,15.75
3313
3320
  CZHLP,Hlubocepy,,
3314
3321
  CZHLU,Hluk,48.9833,17.5167
3315
3322
  CZHOT,Hostomice,,
@@ -3676,7 +3683,7 @@ DEGXG,Gager,54.3,13.6833
3676
3683
  DEGXN,Gimmeldingen,49.3667,8.15
3677
3684
  DEGXR,Gröde,54.6333,8.7167
3678
3685
  DEGXS,Gaussig,51.1167,14.3167
3679
- DEGYM,Mainzlar,50.6667,-8.7333
3686
+ DEGYM,Mainzlar,50.6667,8.7333
3680
3687
  DEGZG,Grosszerlang,53.1833,12.95
3681
3688
  DEHAF,Hafenlohr,,
3682
3689
  DEHAJ,Hannover,52.3667,9.7167
@@ -4219,7 +4226,7 @@ DEWNG,Weissenburg in Bayern,49.0333,10.9667
4219
4226
  DEWNH,Windheim,52.4,9.0167
4220
4227
  DEWNI,Winnweiler,49.5667,7.85
4221
4228
  DEWNL,Wandersleben,50.9,10.85
4222
- DEWNT,Wedlenstedt,52.25,-10.4
4229
+ DEWNT,Wedlenstedt,52.25,10.4
4223
4230
  DEWNU,Weissenthurm,50.4167,7.45
4224
4231
  DEWOB,Wolfsburg,52.4333,10.8
4225
4232
  DEWOE,Wörth am Rhein,,
@@ -4512,7 +4519,7 @@ DMPOR,Portsmouth,15.5667,-61.45
4512
4519
  DMRSU,Roseau,,
4513
4520
  DOAZU,Azua,18.45,-70.7333
4514
4521
  DOBAN,Baní,18.2833,-70.3333
4515
- DOBAV,Bavaro,-18.7167,-68.45
4522
+ DOBAV,Bavaro,18.7167,-68.45
4516
4523
  DOBCC,Boca Chica,,
4517
4524
  DOBQL,Barcequillo,18.4333,-70.0333
4518
4525
  DOBRX,Barahona,,
@@ -5808,7 +5815,7 @@ FRHET,Hennebont,47.8,-3.2833
5808
5815
  FRHEY,Chessy,48.8833,2.7667
5809
5816
  FRHIY,Chierry,49.0333,3.4333
5810
5817
  FRHJK,Bonnencontre,47.0833,5.15
5811
- FRHMX,Île-de-Batz,48.75,3.9833
5818
+ FRHMX,Île-de-Batz,48.75,-3.9833
5812
5819
  FRHOG,Hombourg,47.7667,7.5
5813
5820
  FRHON,Honfleur,49.4167,0.2333
5814
5821
  FRHOP,Hopital-Camfrout,48.3333,-4.2333
@@ -5857,7 +5864,7 @@ FRJMQ,Combertault,47.0,4.9
5857
5864
  FRJPL,Virey,46.8333,4.8667
5858
5865
  FRJUU,Jouarre,48.9333,3.1333
5859
5866
  FRJYS,La Penne-sur-Ouveze,44.25,5.2167
5860
- FRKAQ,Saint-Julien-de-Chédon,47.3,-1.2
5867
+ FRKAQ,Saint-Julien-de-Chédon,47.3,1.2
5861
5868
  FRKLO,Ponte Leccia,42.4667,9.2
5862
5869
  FRKLU,Muides-sur-Loire,47.6667,1.5333
5863
5870
  FRKLY,Cruzy,43.35,2.95
@@ -6025,7 +6032,7 @@ FRPC6,Saint-Nicolas,50.3,2.7667
6025
6032
  FRPD2,Plombières-lès-Dijon,47.3333,4.9667
6026
6033
  FRPDB,Port-de-Bouc,43.4,4.9833
6027
6034
  FRPDF,Pontevès,43.5667,6.05
6028
- FRPDH,Port-des-Barques,45.95,0.9167
6035
+ FRPDH,Port-des-Barques,45.95,-0.9167
6029
6036
  FRPDU,Saint-Pierre-d'Autils,49.1167,1.4167
6030
6037
  FRPET,Petit-Couronne,49.3833,1.0333
6031
6038
  FRPF4,Étrigny,46.5833,4.8
@@ -6594,7 +6601,7 @@ GBCKN,Culkein,58.25,-5.35
6594
6601
  GBCKR,Chickerell,50.6167,-2.5
6595
6602
  GBCKS,Creeksea,51.6333,0.7833
6596
6603
  GBCLF,Cliffe,,
6597
- GBCLJ,Claonaig,55.75,5.3833
6604
+ GBCLJ,Claonaig,55.75,-5.3833
6598
6605
  GBCLM,Culkein/Drumbeg,58.2333,-5.3333
6599
6606
  GBCLR,Coleraine,,
6600
6607
  GBCLS,Clacton-on-Sea,51.8,1.15
@@ -6643,7 +6650,7 @@ GBCUB,"Church Bay, Rathlin Island",55.2833,-6.1833
6643
6650
  GBCUE,Cushendun,55.1333,-6.05
6644
6651
  GBCUJ,Cumbria,54.5,-3.25
6645
6652
  GBCUM,Cumbraes,55.7333,-4.9167
6646
- GBCUN,Cullen,57.6833,2.8167
6653
+ GBCUN,Cullen,57.6833,-2.8167
6647
6654
  GBCUR,Curlew,56.7333,1.3
6648
6655
  GBCUS,Cushendall,55.0833,-6.05
6649
6656
  GBCUV,"Cullivoe, Yell",60.7,-1.0167
@@ -7612,7 +7619,7 @@ GBVEN,Ventnor,50.6,-1.2
7612
7619
  GBVGI,Varg field,,
7613
7620
  GBVID,Vidlin,60.3667,-1.1333
7614
7621
  GBVOE,Voe,60.35,-1.25
7615
- GBVVE,Belgrave,52.65,-2.1667
7622
+ GBVVE,Belgrave,52.65,-1.1167
7616
7623
  GBWAB,Wadebridge,50.5167,-4.8333
7617
7624
  GBWAF,Watford,,
7618
7625
  GBWAT,Watchet,,
@@ -7653,7 +7660,7 @@ GBWMF,Walmer,,
7653
7660
  GBWMS,West Mersea,51.7833,0.9167
7654
7661
  GBWND,Warndon,52.2,-2.1667
7655
7662
  GBWNL,Whinnyfold,57.3833,-1.8667
7656
- GBWNS,Wells-next-the-Sea,52.95,-0.8333
7663
+ GBWNS,Wells-next-the-Sea,52.95,0.8333
7657
7664
  GBWNZ,Walton-on-the-Naze,51.8667,1.2667
7658
7665
  GBWOL,North Woolwich,51.5,0.6667
7659
7666
  GBWOR,Workington,,
@@ -8142,7 +8149,7 @@ GRYAL,Yaltra,38.85,22.9833
8142
8149
  GRYER,Yerakiní,40.2833,23.45
8143
8150
  GRYLI,Yali Island,,
8144
8151
  GRYPS,Ypsos,39.7,19.8333
8145
- GRZAQ,Sérifos,37.15,-24.5
8152
+ GRZAQ,Sérifos,37.15,24.5
8146
8153
  GRZTH,Zákynthos,37.7833,20.9
8147
8154
  GSGRV,Grytviken,-54.2667,-36.5
8148
8155
  GSLEH,Leith Harbour,,
@@ -8392,7 +8399,7 @@ HUAFU,Almásfüzitó,47.7,18.2667
8392
8399
  HUAKT,Andornaktálya,47.8333,20.4167
8393
8400
  HUALS,Alsóörs,46.9833,17.9833
8394
8401
  HUASZ,Alsozsolca,48.0667,20.8833
8395
- HUBDA,Berhida,48.1667,18.1333
8402
+ HUBDA,Berhida,47.1167,18.1333
8396
8403
  HUBRS,Badacsonyörs,46.8,17.5333
8397
8404
  HUBUD,Budapest,47.5,19.0833
8398
8405
  HUBZE,Berzence,46.2,17.15
@@ -8735,7 +8742,7 @@ IDTRK,"Tarakan, Kalimantan",,
8735
8742
  IDTSE,"Tanjung Sekong, Jv",,
8736
8743
  IDTTE,"Ternate, Halmahera",,
8737
8744
  IDTUA,Tual,-5.6333,132.7333
8738
- IDTZD,Amurang,1.1667,-124.5667
8745
+ IDTZD,Amurang,1.1833,124.5667
8739
8746
  IDUDG,Udang Natuna Terminal,4.0167,106.4667
8740
8747
  IDUPG,"Ujung Pandang, Sulawesi",,
8741
8748
  IDUTC,Jakarta UTC1,,
@@ -9409,7 +9416,7 @@ ITFNL,Finale Ligure,44.1667,8.3333
9409
9416
  ITFOL,Follonica,42.9167,10.75
9410
9417
  ITFOM,Formia,41.25,13.6167
9411
9418
  ITFOR,Isolotto Formica,37.9833,12.4167
9412
- ITFPO,Filicudi Porto,,
9419
+ ITFPO,Filicudi Porto,38.5667,14.5833
9413
9420
  ITFRD,Forio,40.7333,13.85
9414
9421
  ITFSA,Fusina,45.4167,12.2333
9415
9422
  ITGAE,Gaeta,41.2,13.5833
@@ -9417,7 +9424,7 @@ ITGAI,Golfo Aranci,41.0,9.6167
9417
9424
  ITGAL,Gallipoli,40.05,17.9833
9418
9425
  ITGEA,Gela,37.0667,14.25
9419
9426
  ITGIA,Giardini Naxos,37.8167,15.2667
9420
- ITGII,Giannutri,,
9427
+ ITGII,Giannutri,42.25,11.1
9421
9428
  ITGIT,Gioia Tauro,38.4167,15.9
9422
9429
  ITGLJ,Camogli,44.35,9.15
9423
9430
  ITGMA,Gabicce Mare,43.9667,12.7667
@@ -9452,7 +9459,7 @@ ITLES,Lesina,41.8667,15.35
9452
9459
  ITLEV,Levanzo,37.9833,12.3333
9453
9460
  ITLIC,Licata,37.1,13.9333
9454
9461
  ITLIP,Lipari,38.45,14.95
9455
- ITLIU,Linosa,,
9462
+ ITLIU,Linosa,35.8667,12.8667
9456
9463
  ITLIV,Livorno,43.55,10.3167
9457
9464
  ITLLT,Savelletri,40.8667,17.4167
9458
9465
  ITLMP,Lampedusa,35.5,12.6
@@ -9464,7 +9471,7 @@ ITMAJ,Marano Lagunare,45.7667,13.1667
9464
9471
  ITMAM,Marciana Marina,42.8,10.2
9465
9472
  ITMAZ,Mazara del Vallo,37.65,12.5833
9466
9473
  ITMDA,La Maddalena,41.2167,9.4
9467
- ITMDC,Marina di Carrara,,
9474
+ ITMDC,Marina di Carrara,44.0333,10.05
9468
9475
  ITMDW,Margherita di Savoia,41.3667,16.15
9469
9476
  ITMFR,Manfredonia,41.6333,15.9167
9470
9477
  ITMGE,Marina Grande,40.55,14.25
@@ -9474,13 +9481,13 @@ ITMIT,Marina di Camerota,40.0,15.3667
9474
9481
  ITMLB,Marina della Lobra,40.6,14.3333
9475
9482
  ITMLS,Montalto di Castro,42.35,11.6167
9476
9483
  ITMLU,Massa Lubrense,40.6,14.3333
9477
- ITMLZ,Milazzo,,
9478
- ITMMO,Marettimo,,
9484
+ ITMLZ,Milazzo,38.2167,15.2333
9485
+ ITMMO,Marettimo,37.9667,12.0667
9479
9486
  ITMND,"Mondello, Palermo",38.2,13.3333
9480
- ITMNF,Monfalcone,,
9481
- ITMNP,Monopoli,,
9487
+ ITMNF,Monfalcone,45.8,13.5333
9488
+ ITMNP,Monopoli,40.95,17.3
9482
9489
  ITMNU,Marinella di Selinunte,37.5833,12.7833
9483
- ITMOL,Molfetta,,
9490
+ ITMOL,Molfetta,41.2,16.6
9484
9491
  ITMPA,Marina di Pisa,43.6667,10.2667
9485
9492
  ITMPS,Melito di Porto Salvo,37.9167,15.7833
9486
9493
  ITMRA,Marsala,37.8,12.4333
@@ -9488,12 +9495,12 @@ ITMRM,Cirò Marina,39.3667,17.1333
9488
9495
  ITMRP,Marina di Campo,42.7333,10.2333
9489
9496
  ITMSB,Marina di Pisciotta,40.1,15.2333
9490
9497
  ITMSD,Marina di Grosseto,42.7167,10.9833
9491
- ITMSN,Messina,,
9498
+ ITMSN,Messina,38.2,15.55
9492
9499
  ITMTH,Meta,40.65,14.4
9493
9500
  ITNAP,Napoli,40.8333,14.25
9494
9501
  ITNCT,San Cataldo,40.3833,18.3
9495
9502
  ITNGA,Sperlonga,41.25,13.4333
9496
- ITNIG,Cannigione,,
9503
+ ITNIG,Cannigione,41.1,9.4333
9497
9504
  ITNLI,Noli,44.2,8.4333
9498
9505
  ITNNE,Cala Gonone,40.3,9.6333
9499
9506
  ITNSR,Nova Siri,40.15,16.5333
@@ -9506,24 +9513,24 @@ ITODB,Mola di Bari,41.0667,17.0833
9506
9513
  ITODG,Mondragone,41.1167,13.8833
9507
9514
  ITOGN,Ognina,36.9833,15.25
9508
9515
  ITOLB,Olbia,40.9167,9.5167
9509
- ITONE,Oneglia,,
9516
+ ITONE,Oneglia,43.8833,8.0333
9510
9517
  ITORL,Porticello,38.0833,13.5333
9511
- ITOTN,Ortona,,
9512
- ITOTO,Otranto,,
9518
+ ITOTN,Ortona,42.35,14.4
9519
+ ITOTO,Otranto,40.15,18.4833
9513
9520
  ITOZI,Pozzillo,37.65,15.1833
9514
9521
  ITPAN,Panarea,,
9515
- ITPAU,Palau,,
9516
- ITPAZ,Porto Azzurro,,
9517
- ITPCE,Porto Cervo,,
9518
- ITPCH,Peschici,,
9522
+ ITPAU,Palau,41.1833,9.3833
9523
+ ITPAZ,Porto Azzurro,42.7667,10.4
9524
+ ITPCE,Porto Cervo,41.1333,9.5333
9525
+ ITPCH,Peschici,41.95,16.0167
9519
9526
  ITPCN,Porto Conte Torre Nuova,40.6,8.2
9520
- ITPDI,Porto d'Ischia,,
9527
+ ITPDI,Porto d'Ischia,40.75,13.95
9521
9528
  ITPED,Pedaso,43.1,13.8333
9522
- ITPEM,Porto Empedocle,,
9529
+ ITPEM,Porto Empedocle,37.2833,13.5333
9523
9530
  ITPES,Pesaro,43.9,12.9167
9524
- ITPFE,Portoferraio,,
9531
+ ITPFE,Portoferraio,42.8167,10.3333
9525
9532
  ITPFX,Porto Foxi (Sarroch),39.05,9.0
9526
- ITPGA,Porto Garibaldi,,
9533
+ ITPGA,Porto Garibaldi,44.6833,12.2333
9527
9534
  ITPGL,Portigliola,38.2333,16.2167
9528
9535
  ITPIA,Pianosa,42.5667,10.0667
9529
9536
  ITPIM,Praia a Mare,39.9,15.7833
@@ -9534,13 +9541,13 @@ ITPLN,Palinuro,40.0333,15.2833
9534
9541
  ITPMA,Marghera,45.45,12.2167
9535
9542
  ITPMM,Palmi,38.35,15.85
9536
9543
  ITPMO,Palermo,38.1167,13.3667
9537
- ITPMZ,Porto Maurizio,,
9538
- ITPNG,Porto Nogaro,,
9539
- ITPNL,Pantelleria,,
9544
+ ITPMZ,Porto Maurizio,43.8833,8.0167
9545
+ ITPNG,Porto Nogaro,45.8167,13.2167
9546
+ ITPNL,Pantelleria,36.8333,11.95
9540
9547
  ITPNZ,Ponza,40.9,12.9667
9541
9548
  ITPOM,Pomezia,41.6667,12.5
9542
9549
  ITPOQ,Porto Viro,45.05,12.25
9543
- ITPOS,Positano,,
9550
+ ITPOS,Positano,40.6333,14.4833
9544
9551
  ITPOZ,Pozzuoli,,
9545
9552
  ITPPF,Porto Palo,37.5667,12.9
9546
9553
  ITPPL,Portopalo,36.6833,15.1333
@@ -9549,42 +9556,42 @@ ITPRF,Porto Recanati,43.4333,13.6667
9549
9556
  ITPRH,Sapri,40.0667,15.6333
9550
9557
  ITPRJ,Capri,40.55,14.2333
9551
9558
  ITPRL,Priolo Gargallo,37.15,15.1833
9552
- ITPRO,Procida,,
9559
+ ITPRO,Procida,40.7667,14.0167
9553
9560
  ITPRR,Piano di Sorrento,40.6333,14.3833
9554
9561
  ITPRW,Portovenere,44.05,9.85
9555
9562
  ITPSR,Pescara,42.4667,14.2333
9556
- ITPSS,Porto Santo Stefano,,
9563
+ ITPSS,Porto Santo Stefano,42.4333,11.1167
9557
9564
  ITPTC,Portici,40.8167,14.3333
9558
- ITPTF,Portofino,,
9565
+ ITPTF,Portofino,44.3,9.2167
9559
9566
  ITPTH,Porto Ercole,42.3833,11.2
9560
9567
  ITPTI,Patti,38.1333,14.9667
9561
- ITPTO,Porto Torres,,
9568
+ ITPTO,Porto Torres,40.8333,8.4
9562
9569
  ITPUC,Punta Cugno,37.2167,15.2
9563
9570
  ITPVE,Portoscuso (Porto Vesme),39.2,8.3833
9564
9571
  ITPVT,Porto Levante,45.05,12.3667
9565
9572
  ITPZL,Pozzallo,36.7167,14.85
9566
9573
  ITQMM,Marina di Massa,44.0,10.1
9567
9574
  ITQOS,Oristano,39.9,8.6
9568
- ITRAN,Ravenna,,
9575
+ ITRAN,Ravenna,44.4167,12.2
9569
9576
  ITRCE,Riccione,43.9833,12.65
9570
9577
  ITREC,Recco,44.3667,9.15
9571
9578
  ITREG,Reggio di Calabria,38.1,15.65
9572
- ITRGG,Rodi Garganico,,
9579
+ ITRGG,Rodi Garganico,41.9333,15.8833
9573
9580
  ITRIN,Rinella,38.5333,14.8333
9574
- ITRMA,Rio Marina,,
9581
+ ITRMA,Rio Marina,42.8167,10.4333
9575
9582
  ITRMG,Rio Maggiore,44.1,9.7333
9576
9583
  ITRMI,Rimini,44.0667,12.5833
9577
9584
  ITRNS,Spotorno,44.2333,8.4167
9578
9585
  ITROC,Roccella Ionica,38.3167,16.4
9579
9586
  ITRPO,Rapallo,44.35,9.2333
9580
9587
  ITRPT,Riposto,37.7333,15.2
9581
- ITRRO,Sorrento,,
9588
+ ITRRO,Sorrento,40.6167,14.3667
9582
9589
  ITRRV,Sferracavallo,38.2,13.2333
9583
9590
  ITRSM,Monterosso al Mare,44.15,9.65
9584
9591
  ITRTS,Riva Trigoso,44.2667,9.4167
9585
9592
  ITRTT,Marotta,43.7667,13.1333
9586
9593
  ITSAL,Salerno,,
9587
- ITSAT,Sant' Antioco,,
9594
+ ITSAT,Sant' Antioco,39.0667,8.45
9588
9595
  ITSCK,Sciacca,37.5167,13.05
9589
9596
  ITSCO,Scoglitti,36.8833,14.4333
9590
9597
  ITSDB,San Benedetto del Tronto,42.95,13.8833
@@ -9593,40 +9600,40 @@ ITSFE,San Felice Circeo,41.2333,13.0833
9593
9600
  ITSFM,Santa Foca di Melendugno,40.2667,18.3333
9594
9601
  ITSID,Siderno Marina,38.2667,16.3
9595
9602
  ITSIG,Porto San Giorgio,43.1833,13.8
9596
- ITSIR,Siracusa,,
9603
+ ITSIR,Siracusa,37.0667,15.2833
9597
9604
  ITSLA,Santa Marina Salina,38.5667,14.8667
9598
9605
  ITSLC,"Saline, Reggio Calabria",37.95,15.7
9599
9606
  ITSLL,Scilla,38.25,15.7167
9600
9607
  ITSLV,Silvi Marina,42.5667,14.0833
9601
9608
  ITSMA,Santa Marinella,42.0333,11.85
9602
9609
  ITSMK,Santa Maria di Castellabate,40.2833,14.95
9603
- ITSML,Santa Margherita Ligure,,
9610
+ ITSML,Santa Margherita Ligure,44.3333,9.2167
9604
9611
  ITSNR,Terrasini,38.15,13.0833
9605
9612
  ITSOO,Soverato,38.6833,16.55
9606
9613
  ITSPA,Santa Panagia,37.1,15.25
9607
9614
  ITSPE,La Spezia,44.1167,9.8333
9608
- ITSRE,San Remo,,
9615
+ ITSRE,San Remo,43.8167,7.7833
9609
9616
  ITSRH,Scario,40.05,15.4833
9610
9617
  ITSSF,Santo Stefano al Mare,43.8333,7.8833
9611
9618
  ITSTE,Santa Teresa di Gallura,41.2333,9.1833
9612
- ITSTR,Stromboli,,
9613
- ITSVC,San Vito lo Capo,,
9619
+ ITSTR,Stromboli,38.8,15.2333
9620
+ ITSVC,San Vito lo Capo,38.1667,12.7333
9614
9621
  ITSVN,Savona,44.2833,8.5
9615
9622
  ITTAA,Cetara,40.65,14.7
9616
- ITTAL,Talamone,,
9623
+ ITTAL,Talamone,42.55,11.1333
9617
9624
  ITTAO,Taormina,37.85,15.2833
9618
9625
  ITTAR,Taranto,40.4833,17.2333
9619
9626
  ITTCC,Trebisacce,39.8667,16.5333
9620
9627
  ITTCS,Torre Cesarea,40.0333,18.45
9621
9628
  ITTEA,Maratea,39.9833,15.7167
9622
9629
  ITTEF,Santo Stefano di Camastra,38.0167,14.35
9623
- ITTGR,Torregrande,,
9630
+ ITTGR,Torregrande,39.9,8.5167
9624
9631
  ITTGV,Torre Gaveta,40.8167,14.05
9625
9632
  ITTLY,Porto San Vitale,44.4333,12.2333
9626
- ITTMI,Termoli,,
9633
+ ITTMI,Termoli,42.0,15.0
9627
9634
  ITTMT,Isole Tremiti,42.1167,15.4833
9628
- ITTNI,Trani,,
9629
- ITTOA,Torre Annunziata,,
9635
+ ITTNI,Trani,41.2833,16.4167
9636
+ ITTOA,Torre Annunziata,40.75,14.45
9630
9637
  ITTPS,Trapani,38.0167,12.4833
9631
9638
  ITTRC,Terracina,,
9632
9639
  ITTRH,Torre Faro,38.25,15.6333
@@ -9638,20 +9645,20 @@ ITTVC,Torviscosa,45.8167,13.2667
9638
9645
  ITUGG,Muggia,45.6,13.7667
9639
9646
  ITULE,Zaule,45.6,13.8
9640
9647
  ITURI,Scauri,41.25,13.7
9641
- ITUST,Ustica,,
9648
+ ITUST,Ustica,38.7167,13.1833
9642
9649
  ITVCE,Venezia,45.4333,12.3333
9643
9650
  ITVDA,Vada,,
9644
9651
  ITVDL,Vado Ligure,44.2667,8.45
9645
9652
  ITVEN,Ventimiglia,43.7833,7.6
9646
- ITVIA,Viareggio,,
9647
- ITVIE,Vieste,,
9653
+ ITVIA,Viareggio,43.8667,10.25
9654
+ ITVIE,Vieste,41.8833,16.1833
9648
9655
  ITVSG,"Villa San Giovanni, Calabria",38.2167,15.6333
9649
9656
  ITVSO,Vasto,,
9650
9657
  ITVT3,Villafranca Tirrena,38.2333,15.4333
9651
9658
  ITVTI,Voltri,44.4333,8.75
9652
- ITVTT,Ventotene,,
9653
- ITVUL,Vulcano porto,,
9654
- ITVVA,Vibo Valentia,,
9659
+ ITVTT,Ventotene,40.8,13.4333
9660
+ ITVUL,Vulcano porto,38.4167,14.95
9661
+ ITVVA,Vibo Valentia,38.6667,16.1
9655
9662
  ITVZN,Vernazza,44.1333,9.6833
9656
9663
  ITXXX,RIS Inland waterways,,
9657
9664
  ITZQQ,Polignano a Mare,41.0,17.2167
@@ -12182,7 +12189,7 @@ NLGRK,Groenendijk,52.1333,4.5667
12182
12189
  NLGRQ,Groningen,,
12183
12190
  NLGRW,Groeneweg,51.9833,4.6
12184
12191
  NLGRZ,'s-Gravenzande,52.0,4.1667
12185
- NLGSS,Gasselternijveen,52.9833,60.85
12192
+ NLGSS,Gasselternijveen,52.9833,6.85
12186
12193
  NLGUN,Goudriaan,51.9,4.9
12187
12194
  NLGWD,Groenewoud,51.5167,5.6167
12188
12195
  NLGWO,Garmerwolde,53.25,6.65
@@ -12274,7 +12281,7 @@ NLLAV,Loenen aan de Vecht,,
12274
12281
  NLLAW,Lage Weide,,
12275
12282
  NLLDD,Leiderdorp,,
12276
12283
  NLLEM,Lemsterland,,
12277
- NLLEN,Lieren,52.1667,60.0
12284
+ NLLEN,Lieren,52.1667,6.0
12278
12285
  NLLEO,Leons,53.1167,5.4667
12279
12286
  NLLES,Leens,53.3667,6.3833
12280
12287
  NLLEY,Lelystad,,
@@ -12301,7 +12308,7 @@ NLMAK,Makkum,53.05,5.4
12301
12308
  NLMAR,Markelo,,
12302
12309
  NLMAU,Maurik,,
12303
12310
  NLMDG,Muiderberg,52.3333,5.1167
12304
- NLMDI,Middenbeemster,52.55,40.9167
12311
+ NLMDI,Middenbeemster,52.55,4.9167
12305
12312
  NLMDT,Mildert,,
12306
12313
  NLMDU,Middelstum,53.35,6.65
12307
12314
  NLMEH,Mesch,,
@@ -12353,7 +12360,7 @@ NLNSD,Nieuw-Scheemda,53.2,6.9333
12353
12360
  NLNST,Nederasselt,51.7667,5.75
12354
12361
  NLNSU,Nessersluis,52.25,4.8667
12355
12362
  NLNSZ,Nieuwe Statenzijl,53.2333,7.2
12356
- NLNTJ,Neeltje Jans,53.6333,3.7
12363
+ NLNTJ,Neeltje Jans,51.6333,3.7
12357
12364
  NLNWG,Nieuwegein,,
12358
12365
  NLNWJ,Noordwelle,51.7167,3.8
12359
12366
  NLNWO,Nieuwolda,53.25,6.9833
@@ -14245,7 +14252,7 @@ ROPPC,Prelipca,47.6,26.35
14245
14252
  ROPSE,Pietroasele,46.1,26.5667
14246
14253
  ROPTA,Petelea,46.7333,24.7167
14247
14254
  RORDE,Rediu,46.9,27.5833
14248
- RORNN,Rosia Montana,-46.3,23.1333
14255
+ RORNN,Rosia Montana,46.3,23.1333
14249
14256
  RORVA,Hârsova,44.6833,27.95
14250
14257
  ROSUL,Sulina (Port et Zone Franche),45.15,29.6667
14251
14258
  ROTCE,Tulcea,45.1833,28.8
@@ -14532,7 +14539,7 @@ RUZDK,Zelënodol'sk,55.8333,48.5167
14532
14539
  RUZEM,Zeleniy Mys,,
14533
14540
  RWNSA,Nyagatare,-1.2833,30.3167
14534
14541
  RWRUB,Rubengera,,
14535
- RWRW4,Rwamagana,1.95,30.4333
14542
+ RWRW4,Rwamagana,-1.95,30.4333
14536
14543
  SAAHA,Al Hada,,
14537
14544
  SAALK,Al Khobar,,
14538
14545
  SAAMU,Al Muajjiz,23.4667,38.3833
@@ -14944,7 +14951,7 @@ SIPOW,Portoroz,,
14944
14951
  SIROG,Rogasovci,46.8,16.0333
14945
14952
  SIS8L,Selca,46.2167,14.2
14946
14953
  SISEC,Secovlje,45.4667,13.6167
14947
- SISLV,Lukovica pri Domzalah,46.1667,-144.3333
14954
+ SISLV,Lukovica pri Domzalah,46.1667,14.6833
14948
14955
  SISML,Mala Nedelja,46.5167,16.05
14949
14956
  SITOL,Tolmin,46.1667,13.7167
14950
14957
  SIVB9,Vremski Britof,45.65,14.0167
@@ -15041,7 +15048,7 @@ SVMIR,Miramar,,
15041
15048
  SVNCU,Nuevo Cuscatlan,13.6333,-89.25
15042
15049
  SVNHZ,Nahuizalco,,
15043
15050
  SVSAL,San Salvador,,
15044
- SVSSO,Armenia,13.7333,89.4833
15051
+ SVSSO,Armenia,13.75,-89.5
15045
15052
  SVTUE,Moncagua,,
15046
15053
  SXGES,Gallis Bay,18.0167,-63.0667
15047
15054
  SXMAR,Marigot,18.0667,-63.0667
@@ -15153,7 +15160,7 @@ TNDID,Didon,33.7667,11.9
15153
15160
  TNDJE,Djerba,,
15154
15161
  TNGAE,Gabès,33.8833,10.1167
15155
15162
  TNHMM,Al Hammamat,36.4,10.6167
15156
- TNJAR,Jarjis,33.5,-11.1
15163
+ TNJAR,Jarjis,33.5,11.1
15157
15164
  TNKEB,Kebili,33.7,8.9667
15158
15165
  TNKEM,Ksibet el Médiouni,35.6667,10.8333
15159
15166
  TNLGN,La Goulette Nord (Halqueloued),,
@@ -15287,7 +15294,7 @@ TRPEN,Pendik,,
15287
15294
  TRPLP,Poliport,37.9833,42.05
15288
15295
  TRPZR,Pazar,41.1667,40.8833
15289
15296
  TRRIZ,Rize,41.0333,40.4833
15290
- TRRZY,Rota-Izmit Bay,29.7167,40.7667
15297
+ TRRZY,Rota-Izmit Bay,40.7667,29.7167
15291
15298
  TRSER,Serviburun,,
15292
15299
  TRSIC,Sinop,42.0167,35.1333
15293
15300
  TRSIL,Silivri,41.0667,28.25
@@ -15862,7 +15869,7 @@ USG8Y,Guy,35.3167,-92.3333
15862
15869
  USGA7,Garrison,41.3833,-73.9333
15863
15870
  USGAJ,Bagley,47.5167,-95.4
15864
15871
  USGBC,Gibson City,40.45,-88.3667
15865
- USGBV,Garberville,40.1,123.8
15872
+ USGBV,Garberville,40.1,-123.8
15866
15873
  USGCA,Golconda,40.95,-117.4833
15867
15874
  USGCL,Coolidge,31.0,-83.8667
15868
15875
  USGDJ,Guildhall,44.5667,-71.5667
@@ -17500,7 +17507,7 @@ ZARCB,Richards Bay,,
17500
17507
  ZARSS,Izmit,,
17501
17508
  ZARWC,Riebeek West,-33.35,18.8667
17502
17509
  ZASDB,Saldanha Bay,,
17503
- ZASHM,Robertsham,26.25,28.0167
17510
+ ZASHM,Robertsham,-26.25,28.0167
17504
17511
  ZASID,Sidwell,,
17505
17512
  ZASMN,Simon's Town,-34.1833,18.4333
17506
17513
  ZASNL,Southbroom,-30.9167,30.3167
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Seaports
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
 
6
6
  # The UN/LOCODE edition the shipped table was built from. UNECE republishes
7
7
  # twice a year and names each release by year and half — "2024-2" is the
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seaports
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Édouard Brière
@@ -24,10 +24,10 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '3.3'
26
26
  description: |
27
- Every sea port UNECE publishes a UN/LOCODE for, as a lookup table with no
28
- dependencies and no network calls. Turns the bare codes in an AIS or
29
- carrier tracking feed back into port names and coordinates. The table is
30
- regenerated from each UN/LOCODE release and shipped inside the gem.
27
+ Every sea port UNECE publishes a UN/LOCODE for, as a lookup table that
28
+ makes no network calls. Turns the bare codes in an AIS or carrier tracking
29
+ feed back into port names and coordinates. The table is regenerated from
30
+ each UN/LOCODE release and shipped inside the gem.
31
31
  email:
32
32
  - edouard.briere@gmail.com
33
33
  executables: []