natural_earth 4.1.0 → 4.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +1 -2
- data/.rubocop.yml +5 -13
- data/CHANGELOG.md +15 -1
- data/Gemfile +18 -0
- data/Gemfile.lock +47 -35
- data/lib/natural_earth/countries.rb +4 -0
- data/lib/natural_earth/country.rb +1 -0
- data/lib/natural_earth/geometries.rb +1 -1
- data/lib/natural_earth/iso3166.rb +3 -3
- data/lib/natural_earth/subdivision.rb +1 -0
- data/lib/natural_earth/subdivisions.rb +4 -0
- data/lib/natural_earth/tasks/import.rake +51 -10
- data/lib/natural_earth/version.rb +1 -1
- data/lib/natural_earth.rb +1 -1
- data/natural_earth.gemspec +1 -12
- data/resources/countries.json +1 -1
- data/resources/geometries/AE/AE-AZ.json +1 -1
- data/resources/geometries/AE/AE-DU.json +1 -1
- data/resources/geometries/AE/AE-FU.json +1 -1
- data/resources/geometries/AE/AE-RK.json +1 -1
- data/resources/geometries/AE/AE-SH.json +1 -1
- data/resources/geometries/AF/AF-KNR.json +1 -1
- data/resources/geometries/AF/AF-NIM.json +1 -1
- data/resources/geometries/AL/AL-07.json +1 -1
- data/resources/geometries/AR/AR-W.json +1 -1
- data/resources/geometries/AR/AR-Z.json +1 -1
- data/resources/geometries/AT/AT-1.json +1 -1
- data/resources/geometries/AZ/AZ-AGC.json +1 -1
- data/resources/geometries/AZ/AZ-AGM.json +1 -1
- data/resources/geometries/AZ/AZ-FUZ.json +1 -1
- data/resources/geometries/AZ/AZ-GOR.json +1 -1
- data/resources/geometries/AZ/AZ-KAL.json +1 -1
- data/resources/geometries/AZ/AZ-SUS.json +1 -1
- data/resources/geometries/AZ/AZ-TAR.json +1 -1
- data/resources/geometries/AZ/AZ-XVD.json +1 -1
- data/resources/geometries/AZ/AZ-YAR.json +1 -1
- data/resources/geometries/BD/BD-F.json +1 -1
- data/resources/geometries/BG/BG-08.json +1 -1
- data/resources/geometries/BH/BH-13.json +1 -1
- data/resources/geometries/BN/BN-TE.json +1 -1
- data/resources/geometries/BO/BO-H.json +1 -1
- data/resources/geometries/BO/BO-T.json +1 -1
- data/resources/geometries/BR/BR-AL.json +1 -1
- data/resources/geometries/BR/BR-PE.json +1 -1
- data/resources/geometries/BR/BR-RS.json +1 -1
- data/resources/geometries/BT/BT-11.json +1 -1
- data/resources/geometries/BT/BT-12.json +1 -1
- data/resources/geometries/BT/BT-13.json +1 -1
- data/resources/geometries/BT/BT-24.json +1 -1
- data/resources/geometries/BT/BT-31.json +1 -1
- data/resources/geometries/BT/BT-33.json +1 -1
- data/resources/geometries/BT/BT-41.json +1 -1
- data/resources/geometries/BT/BT-44.json +1 -1
- data/resources/geometries/BT/BT-GA.json +1 -1
- data/resources/geometries/BT/BT-TY.json +1 -1
- data/resources/geometries/BZ/BZ-BZ.json +1 -1
- data/resources/geometries/BZ/BZ-CY.json +1 -1
- data/resources/geometries/CA/CA-NB.json +1 -1
- data/resources/geometries/CA/CA-NT.json +1 -1
- data/resources/geometries/CA/CA-NU.json +1 -1
- data/resources/geometries/CA/CA-ON.json +1 -1
- data/resources/geometries/CA/CA-QC.json +1 -1
- data/resources/geometries/CA/CA-SK.json +1 -1
- data/resources/geometries/CD/CD-BC.json +1 -1
- data/resources/geometries/CD/CD-NK.json +1 -1
- data/resources/geometries/CG/CG-11.json +1 -1
- data/resources/geometries/CG/CG-12.json +1 -1
- data/resources/geometries/CI/CI-01.json +1 -1
- data/resources/geometries/CI/CI-13.json +1 -1
- data/resources/geometries/CL/CL-BI.json +1 -1
- data/resources/geometries/CL/CL-MA.json +1 -1
- data/resources/geometries/CL/CL-ML.json +1 -1
- data/resources/geometries/CL/CL-NB.json +1 -0
- data/resources/geometries/CN/CN-GD.json +1 -0
- data/resources/geometries/CN/{CN-65.json → CN-XJ.json} +1 -1
- data/resources/geometries/CN/CN-XZ.json +1 -0
- data/resources/geometries/CN/CN-YN.json +1 -0
- data/resources/geometries/CO/CO-ANT.json +1 -1
- data/resources/geometries/CO/CO-COR.json +1 -1
- data/resources/geometries/CR/CR-L.json +1 -1
- data/resources/geometries/CY/CY-01.json +1 -1
- data/resources/geometries/CY/CY-03.json +1 -1
- data/resources/geometries/CY/CY-04.json +1 -1
- data/resources/geometries/CZ/CZ-KR.json +1 -1
- data/resources/geometries/CZ/CZ-LI.json +1 -1
- data/resources/geometries/CZ/CZ-PL.json +1 -1
- data/resources/geometries/DE/DE-BY.json +1 -1
- data/resources/geometries/DO/DO-16.json +1 -1
- data/resources/geometries/DZ/DZ-13.json +1 -1
- data/resources/geometries/EC/EC-E.json +1 -1
- data/resources/geometries/EC/EC-G.json +1 -1
- data/resources/geometries/EC/EC-M.json +1 -1
- data/resources/geometries/EC/EC-O.json +1 -1
- data/resources/geometries/EC/EC-SE.json +1 -1
- data/resources/geometries/EG/EG-ASN.json +1 -1
- data/resources/geometries/EG/EG-BA.json +1 -1
- data/resources/geometries/EG/EG-DK.json +1 -1
- data/resources/geometries/EG/EG-MT.json +1 -1
- data/resources/geometries/EG/EG-PTS.json +1 -1
- data/resources/geometries/EG/EG-SIN.json +1 -1
- data/resources/geometries/EG/EG-WAD.json +1 -1
- data/resources/geometries/ES/ES-BA.json +1 -1
- data/resources/geometries/ES/ES-CC.json +1 -1
- data/resources/geometries/ES/ES-H.json +1 -1
- data/resources/geometries/ES/ES-SA.json +1 -1
- data/resources/geometries/ES/ES-ZA.json +1 -1
- data/resources/geometries/FI/FI-02.json +1 -1
- data/resources/geometries/FI/FI-10.json +1 -1
- data/resources/geometries/FR/FR-06.json +1 -1
- data/resources/geometries/GA/GA-1.json +1 -1
- data/resources/geometries/GA/GA-8.json +1 -1
- data/resources/geometries/GB/GB-CHW.json +1 -1
- data/resources/geometries/GB/GB-EDH.json +1 -1
- data/resources/geometries/GB/GB-ERY.json +1 -1
- data/resources/geometries/GB/GB-FIF.json +1 -1
- data/resources/geometries/GB/GB-FLN.json +1 -1
- data/resources/geometries/GB/GB-HLD.json +1 -1
- data/resources/geometries/GB/GB-KEN.json +1 -1
- data/resources/geometries/GB/GB-LIN.json +1 -1
- data/resources/geometries/GB/GB-MDW.json +1 -1
- data/resources/geometries/GB/GB-MLN.json +1 -1
- data/resources/geometries/GB/GB-MRY.json +1 -1
- data/resources/geometries/GB/GB-NEL.json +1 -1
- data/resources/geometries/GB/GB-NLN.json +1 -1
- data/resources/geometries/GB/GB-NYK.json +1 -1
- data/resources/geometries/GB/GB-PKN.json +1 -1
- data/resources/geometries/GE/GE-IM.json +1 -1
- data/resources/geometries/GE/GE-MM.json +1 -1
- data/resources/geometries/GE/GE-RL.json +1 -1
- data/resources/geometries/GE/GE-SK.json +1 -1
- data/resources/geometries/GF/GF.json +1 -1
- data/resources/geometries/GH/GH-AA.json +1 -1
- data/resources/geometries/GH/GH-TV.json +1 -1
- data/resources/geometries/GP/GP.json +1 -1
- data/resources/geometries/GR/GR-B.json +1 -1
- data/resources/geometries/GT/GT-IZ.json +1 -1
- data/resources/geometries/GT/GT-RE.json +1 -1
- data/resources/geometries/GT/GT-SM.json +1 -1
- data/resources/geometries/GY/GY-PT.json +1 -1
- data/resources/geometries/GY/GY-UD.json +1 -1
- data/resources/geometries/GY/GY-UT.json +1 -1
- data/resources/geometries/HN/HN-SB.json +1 -1
- data/resources/geometries/HR/HR-01.json +1 -1
- data/resources/geometries/HR/HR-04.json +1 -1
- data/resources/geometries/HR/HR-05.json +1 -1
- data/resources/geometries/HR/HR-08.json +1 -1
- data/resources/geometries/HR/HR-14.json +1 -1
- data/resources/geometries/HR/HR-16.json +1 -1
- data/resources/geometries/HR/HR-18.json +1 -1
- data/resources/geometries/HT/HT-SE.json +1 -1
- data/resources/geometries/HU/HU-VA.json +1 -1
- data/resources/geometries/ID/ID-AC.json +1 -1
- data/resources/geometries/ID/ID-BE.json +1 -1
- data/resources/geometries/ID/ID-KI.json +1 -1
- data/resources/geometries/ID/ID-KS.json +1 -1
- data/resources/geometries/ID/ID-SB.json +1 -1
- data/resources/geometries/ID/ID-SU.json +1 -1
- data/resources/geometries/IL/IL-D.json +1 -1
- data/resources/geometries/IL/IL-JM.json +1 -1
- data/resources/geometries/IL/IL-M.json +1 -1
- data/resources/geometries/IL/IL-TA.json +1 -1
- data/resources/geometries/IL/IL-Z.json +1 -1
- data/resources/geometries/IL/IL.json +1 -1
- data/resources/geometries/IN/IN-AP.json +1 -1
- data/resources/geometries/IN/IN-AR.json +1 -1
- data/resources/geometries/IN/IN-AS.json +1 -1
- data/resources/geometries/IN/IN-BR.json +1 -1
- data/resources/geometries/IN/IN-DH.json +1 -0
- data/resources/geometries/IN/IN-GJ.json +1 -1
- data/resources/geometries/IN/IN-HP.json +1 -1
- data/resources/geometries/IN/IN-JK.json +1 -1
- data/resources/geometries/IN/IN-LA.json +1 -0
- data/resources/geometries/IN/IN-LD.json +1 -1
- data/resources/geometries/IN/IN-MH.json +1 -1
- data/resources/geometries/IN/IN-TG.json +1 -0
- data/resources/geometries/IN/IN-UP.json +1 -1
- data/resources/geometries/IN/IN-UT.json +1 -1
- data/resources/geometries/IN/IN-WB.json +1 -1
- data/resources/geometries/IQ/IQ-BA.json +1 -1
- data/resources/geometries/IQ/IQ-SU.json +1 -1
- data/resources/geometries/IR/IR-02.json +1 -1
- data/resources/geometries/IR/IR-03.json +1 -1
- data/resources/geometries/IR/IR-13.json +1 -1
- data/resources/geometries/IR/IR-23.json +1 -1
- data/resources/geometries/IT/IT-FC.json +1 -1
- data/resources/geometries/IT/IT-RA.json +1 -1
- data/resources/geometries/JO/JO-IR.json +1 -1
- data/resources/geometries/KE/KE-300.json +1 -1
- data/resources/geometries/KE/KE-700.json +1 -1
- data/resources/geometries/KG/KG-B.json +1 -1
- data/resources/geometries/KG/KG-J.json +1 -1
- data/resources/geometries/KH/KH-18.json +1 -1
- data/resources/geometries/KR/KR-41.json +1 -1
- data/resources/geometries/KR/KR-42.json +1 -1
- data/resources/geometries/KW/KW-JA.json +1 -1
- data/resources/geometries/KZ/KZ-MAN.json +1 -1
- data/resources/geometries/LA/LA-XE.json +1 -1
- data/resources/geometries/LA/LA-XI.json +1 -1
- data/resources/geometries/LB/LB-JA.json +1 -1
- data/resources/geometries/LB/LB-NA.json +1 -1
- data/resources/geometries/LK/LK-12.json +1 -1
- data/resources/geometries/LK/LK-31.json +1 -1
- data/resources/geometries/LK/LK-32.json +1 -1
- data/resources/geometries/LK/LK-41.json +1 -1
- data/resources/geometries/LK/LK-42.json +1 -1
- data/resources/geometries/LK/LK-45.json +1 -1
- data/resources/geometries/LK/LK-51.json +1 -1
- data/resources/geometries/LK/LK-52.json +1 -1
- data/resources/geometries/LK/LK-53.json +1 -1
- data/resources/geometries/LR/LR-BM.json +1 -1
- data/resources/geometries/LR/LR-CM.json +1 -1
- data/resources/geometries/LR/LR-GB.json +1 -1
- data/resources/geometries/LR/LR-RI.json +1 -1
- data/resources/geometries/LY/LY-BU.json +1 -1
- data/resources/geometries/LY/LY-NQ.json +1 -1
- data/resources/geometries/LY/LY-ZA.json +1 -1
- data/resources/geometries/MA/MA-04.json +1 -1
- data/resources/geometries/MA/MA-14.json +1 -1
- data/resources/geometries/MA/MA-15.json +1 -1
- data/resources/geometries/MD/MD-CA.json +1 -1
- data/resources/geometries/ME/ME-13.json +1 -1
- data/resources/geometries/MK/MK-55.json +1 -1
- data/resources/geometries/ML/ML-6.json +1 -1
- data/resources/geometries/MM/MM-05.json +1 -1
- data/resources/geometries/MM/MM-17.json +1 -1
- data/resources/geometries/MQ/MQ.json +1 -1
- data/resources/geometries/MR/MR-01.json +1 -1
- data/resources/geometries/MR/MR-11.json +1 -1
- data/resources/geometries/MV/MV-00.json +1 -1
- data/resources/geometries/MV/MV-02.json +1 -1
- data/resources/geometries/MV/MV-05.json +1 -1
- data/resources/geometries/MV/MV-07.json +1 -1
- data/resources/geometries/MV/MV-08.json +1 -1
- data/resources/geometries/MV/MV-13.json +1 -1
- data/resources/geometries/MV/MV-23.json +1 -1
- data/resources/geometries/MV/MV-26.json +1 -1
- data/resources/geometries/MV/MV-28.json +1 -1
- data/resources/geometries/MY/MY-01.json +1 -1
- data/resources/geometries/MY/MY-02.json +1 -1
- data/resources/geometries/MY/MY-04.json +1 -1
- data/resources/geometries/MY/MY-09.json +1 -1
- data/resources/geometries/MY/MY-12.json +1 -1
- data/resources/geometries/MY/MY-13.json +1 -1
- data/resources/geometries/NG/NG-DE.json +1 -1
- data/resources/geometries/NG/NG-ON.json +1 -1
- data/resources/geometries/NI/NI-SJ.json +1 -1
- data/resources/geometries/NP/NP-BH.json +1 -1
- data/resources/geometries/NP/NP-KO.json +1 -1
- data/resources/geometries/NP/NP-LU.json +1 -1
- data/resources/geometries/NP/NP-MA.json +1 -1
- data/resources/geometries/NP/NP-ME.json +1 -1
- data/resources/geometries/NP/NP-NA.json +1 -1
- data/resources/geometries/NP/NP-RA.json +1 -1
- data/resources/geometries/NZ/NZ-AUK.json +1 -1
- data/resources/geometries/NZ/NZ-BOP.json +1 -1
- data/resources/geometries/NZ/NZ-GIS.json +1 -1
- data/resources/geometries/NZ/NZ-HKB.json +1 -1
- data/resources/geometries/NZ/NZ-MWT.json +1 -1
- data/resources/geometries/NZ/NZ-TKI.json +1 -1
- data/resources/geometries/NZ/NZ-WGN.json +1 -1
- data/resources/geometries/NZ/NZ-WKO.json +1 -1
- data/resources/geometries/OM/OM-SH.json +1 -1
- data/resources/geometries/PH/PH-ALB.json +1 -1
- data/resources/geometries/PH/PH-ILS.json +1 -1
- data/resources/geometries/PH/PH-LAN.json +1 -1
- data/resources/geometries/PH/PH-LUN.json +1 -1
- data/resources/geometries/PH/PH-NSA.json +1 -1
- data/resources/geometries/PH/PH-SOR.json +1 -1
- data/resources/geometries/PH/PH-WSA.json +1 -1
- data/resources/geometries/PH/PH-ZAS.json +1 -1
- data/resources/geometries/PK/PK-GB.json +1 -1
- data/resources/geometries/PK/PK-JK.json +1 -1
- data/resources/geometries/PK/PK-KP.json +1 -1
- data/resources/geometries/PK/PK-PB.json +1 -1
- data/resources/geometries/PK/PK-SD.json +1 -1
- data/resources/geometries/PL/PL-DS.json +1 -1
- data/resources/geometries/PS/PS-GZZ.json +1 -1
- data/resources/geometries/PS/PS-WBK.json +1 -1
- data/resources/geometries/PT/PT-02.json +1 -1
- data/resources/geometries/PT/PT-04.json +1 -1
- data/resources/geometries/PT/PT-06.json +1 -1
- data/resources/geometries/PT/PT-10.json +1 -1
- data/resources/geometries/PT/PT-12.json +1 -1
- data/resources/geometries/PT/PT-17.json +1 -1
- data/resources/geometries/PY/PY-10.json +1 -1
- data/resources/geometries/PY/PY-5.json +1 -1
- data/resources/geometries/RE/RE.json +1 -1
- data/resources/geometries/RO/RO-CT.json +1 -1
- data/resources/geometries/RS/RS-06.json +1 -1
- data/resources/geometries/RS/RS-18.json +1 -1
- data/resources/geometries/RS/RS-19.json +1 -1
- data/resources/geometries/RU/RU-LEN.json +1 -1
- data/resources/geometries/RU/RU-MUR.json +1 -1
- data/resources/geometries/SA/SA-04.json +1 -1
- data/resources/geometries/SA/SA-09.json +1 -1
- data/resources/geometries/SD/SD-NO.json +1 -1
- data/resources/geometries/SD/SD-NR.json +1 -1
- data/resources/geometries/SD/SD-RS.json +1 -1
- data/resources/geometries/SE/SE-D.json +1 -1
- data/resources/geometries/SE/SE-E.json +1 -1
- data/resources/geometries/SI/SI-035.json +1 -1
- data/resources/geometries/SI/SI-050.json +1 -1
- data/resources/geometries/SI/SI-059.json +1 -1
- data/resources/geometries/SI/SI-090.json +1 -1
- data/resources/geometries/SI/SI-165.json +1 -1
- data/resources/geometries/SN/SN-DK.json +1 -1
- data/resources/geometries/SN/SN-TH.json +1 -1
- data/resources/geometries/SS/SS-EE.json +1 -1
- data/resources/geometries/SV/SV-LI.json +1 -1
- data/resources/geometries/SV/SV-PA.json +1 -1
- data/resources/geometries/SV/SV-SV.json +1 -1
- data/resources/geometries/SY/SY-DR.json +1 -1
- data/resources/geometries/SY/SY-ID.json +1 -1
- data/resources/geometries/SY/SY.json +1 -1
- data/resources/geometries/TH/TH-85.json +1 -1
- data/resources/geometries/TH/TH-91.json +1 -1
- data/resources/geometries/TJ/TJ-GB.json +1 -1
- data/resources/geometries/TJ/{TJ-X01~.json → TJ-RA.json} +1 -1
- data/resources/geometries/TJ/TJ-SU.json +1 -1
- data/resources/geometries/TR/TR-04.json +1 -1
- data/resources/geometries/TR/TR-31.json +1 -1
- data/resources/geometries/TR/TR-65.json +1 -1
- data/resources/geometries/TZ/TZ-07.json +1 -1
- data/resources/geometries/TZ/TZ-11.json +1 -1
- data/resources/geometries/TZ/TZ-25.json +1 -1
- data/resources/geometries/UA/UA-09.json +1 -1
- data/resources/geometries/UA/UA-14.json +1 -1
- data/resources/geometries/UA/UA-51.json +1 -1
- data/resources/geometries/UG/UG-406.json +1 -1
- data/resources/geometries/UG/UG-424.json +1 -1
- data/resources/geometries/US/US-AK.json +1 -1
- data/resources/geometries/US/US-AL.json +1 -1
- data/resources/geometries/US/US-CT.json +1 -1
- data/resources/geometries/US/US-DC.json +1 -1
- data/resources/geometries/US/US-DE.json +1 -1
- data/resources/geometries/US/US-FL.json +1 -1
- data/resources/geometries/US/US-HI.json +1 -1
- data/resources/geometries/US/US-ID.json +1 -1
- data/resources/geometries/US/US-MD.json +1 -1
- data/resources/geometries/US/US-ME.json +1 -1
- data/resources/geometries/US/US-MI.json +1 -1
- data/resources/geometries/US/US-MN.json +1 -1
- data/resources/geometries/US/US-MS.json +1 -1
- data/resources/geometries/US/US-MT.json +1 -1
- data/resources/geometries/US/US-NH.json +1 -1
- data/resources/geometries/US/US-NJ.json +1 -1
- data/resources/geometries/US/US-NY.json +1 -1
- data/resources/geometries/US/US-RI.json +1 -1
- data/resources/geometries/US/US-VA.json +1 -1
- data/resources/geometries/US/US-WA.json +1 -1
- data/resources/geometries/US/US-WI.json +1 -1
- data/resources/geometries/UY/UY-AR.json +1 -1
- data/resources/geometries/UY/UY-RV.json +1 -1
- data/resources/geometries/UY/UY-SA.json +1 -1
- data/resources/geometries/UZ/UZ-NG.json +1 -1
- data/resources/geometries/UZ/UZ-QR.json +1 -1
- data/resources/geometries/UZ/UZ-SU.json +1 -1
- data/resources/geometries/VN/VN-22.json +1 -1
- data/resources/geometries/VN/VN-27.json +1 -1
- data/resources/geometries/VN/VN-49.json +1 -1
- data/resources/geometries/VN/VN-51.json +1 -1
- data/resources/geometries/YE/YE-HU.json +1 -1
- data/resources/geometries/YT/YT.json +1 -1
- data/resources/geometries/ZA/ZA-EC.json +1 -1
- data/resources/geometries/ZA/ZA-GT.json +1 -1
- data/resources/geometries/ZA/ZA-LP.json +1 -1
- data/resources/geometries/ZA/ZA-MP.json +1 -1
- data/resources/geometries/ZA/ZA-NC.json +1 -1
- data/resources/geometries/ZA/ZA-NL.json +1 -1
- data/resources/geometries/ZA/ZA-NW.json +1 -1
- data/resources/subdivisions.json +1 -1
- metadata +50 -248
- data/resources/geometries/AE/AE-X01~.json +0 -1
- data/resources/geometries/AE/AE-X02~.json +0 -1
- data/resources/geometries/AU/AU-X02~.json +0 -1
- data/resources/geometries/AU/AU-X03~.json +0 -1
- data/resources/geometries/AU/AU-X04~.json +0 -1
- data/resources/geometries/AZ/AZ-X01~.json +0 -1
- data/resources/geometries/BA/BA-X01~.json +0 -1
- data/resources/geometries/BA/BA-X02~.json +0 -1
- data/resources/geometries/BA/BA-X03~.json +0 -1
- data/resources/geometries/BA/BA-X04~.json +0 -1
- data/resources/geometries/BA/BA-X05~.json +0 -1
- data/resources/geometries/BA/BA-X06~.json +0 -1
- data/resources/geometries/BA/BA-X07~.json +0 -1
- data/resources/geometries/CN/CN-44.json +0 -1
- data/resources/geometries/CN/CN-53.json +0 -1
- data/resources/geometries/CN/CN-54.json +0 -1
- data/resources/geometries/CN/CN-X01~.json +0 -1
- data/resources/geometries/FR/FR-GF.json +0 -1
- data/resources/geometries/FR/FR-GP.json +0 -1
- data/resources/geometries/FR/FR-MQ.json +0 -1
- data/resources/geometries/FR/FR-RE.json +0 -1
- data/resources/geometries/FR/FR-YT.json +0 -1
- data/resources/geometries/IN/IN-DD.json +0 -1
- data/resources/geometries/IN/IN-DN.json +0 -1
- data/resources/geometries/KI/KI-X01~.json +0 -1
- data/resources/geometries/KI/KI-X02~.json +0 -1
- data/resources/geometries/LR/LR-X1~.json +0 -1
- data/resources/geometries/LR/LR-X2~.json +0 -1
- data/resources/geometries/MC/MC-X01~.json +0 -1
- data/resources/geometries/MX/MX-X01~.json +0 -1
- data/resources/geometries/NZ/NZ-X01~.json +0 -1
- data/resources/geometries/NZ/NZ-X03~.json +0 -1
- data/resources/geometries/NZ/NZ-X04~.json +0 -1
- data/resources/geometries/NZ/NZ-X05~.json +0 -1
- data/resources/geometries/NZ/NZ-X06~.json +0 -1
- data/resources/geometries/NZ/NZ-X07~.json +0 -1
- data/resources/geometries/RU/RU-X01~.json +0 -1
- data/resources/geometries/SC/SC-X02~.json +0 -1
- data/resources/geometries/SY/SY-X01~.json +0 -1
- data/resources/geometries/TD/TD-X01~.json +0 -1
- data/resources/geometries/TK/TK-X01~.json +0 -1
- data/resources/geometries/TW/TW-CHA.json +0 -1
- data/resources/geometries/TW/TW-CYI.json +0 -1
- data/resources/geometries/TW/TW-CYQ.json +0 -1
- data/resources/geometries/TW/TW-HSQ.json +0 -1
- data/resources/geometries/TW/TW-HSZ.json +0 -1
- data/resources/geometries/TW/TW-HUA.json +0 -1
- data/resources/geometries/TW/TW-ILA.json +0 -1
- data/resources/geometries/TW/TW-KEE.json +0 -1
- data/resources/geometries/TW/TW-KHH.json +0 -1
- data/resources/geometries/TW/TW-KIN.json +0 -1
- data/resources/geometries/TW/TW-MIA.json +0 -1
- data/resources/geometries/TW/TW-NAN.json +0 -1
- data/resources/geometries/TW/TW-PEN.json +0 -1
- data/resources/geometries/TW/TW-PIF.json +0 -1
- data/resources/geometries/TW/TW-TAO.json +0 -1
- data/resources/geometries/TW/TW-TNN.json +0 -1
- data/resources/geometries/TW/TW-TPE.json +0 -1
- data/resources/geometries/TW/TW-TPQ.json +0 -1
- data/resources/geometries/TW/TW-TTT.json +0 -1
- data/resources/geometries/TW/TW-TXG.json +0 -1
- data/resources/geometries/TW/TW-YUN.json +0 -1
- data/resources/geometries/VE/VE-X01~.json +0 -1
- data/resources/geometries/XK/XK-X01~.json +0 -1
- data/resources/geometries/XK/XK-X02~.json +0 -1
- data/resources/geometries/XK/XK-X03~.json +0 -1
- data/resources/geometries/XK/XK-X04~.json +0 -1
- data/resources/geometries/XK/XK-X05~.json +0 -1
- data/resources/geometries/XK/XK-X06~.json +0 -1
- data/resources/geometries/XK/XK-X07~.json +0 -1
- data/resources/geometries/XK/XK-X08~.json +0 -1
- data/resources/geometries/XK/XK-X09~.json +0 -1
- data/resources/geometries/XK/XK-X10~.json +0 -1
- data/resources/geometries/XK/XK-X11~.json +0 -1
- data/resources/geometries/XK/XK-X12~.json +0 -1
- data/resources/geometries/XK/XK-X13~.json +0 -1
- data/resources/geometries/XK/XK-X14~.json +0 -1
- data/resources/geometries/XK/XK-X15~.json +0 -1
- data/resources/geometries/XK/XK-X16~.json +0 -1
- data/resources/geometries/XK/XK-X17~.json +0 -1
- data/resources/geometries/XK/XK-X18~.json +0 -1
- data/resources/geometries/XK/XK-X19~.json +0 -1
- data/resources/geometries/XK/XK-X20~.json +0 -1
- data/resources/geometries/XK/XK-X21~.json +0 -1
- data/resources/geometries/XK/XK-X22~.json +0 -1
- data/resources/geometries/XK/XK-X23~.json +0 -1
- data/resources/geometries/XK/XK-X24~.json +0 -1
- data/resources/geometries/XK/XK-X25~.json +0 -1
- data/resources/geometries/XK/XK-X26~.json +0 -1
- data/resources/geometries/XK/XK-X27~.json +0 -1
- data/resources/geometries/XK/XK-X28~.json +0 -1
- data/resources/geometries/XK/XK-X29~.json +0 -1
- data/resources/geometries/XK/XK-X30~.json +0 -1
- data/resources/geometries/XK/XK.json +0 -1
- /data/resources/geometries/AL/{AL-BR.json → AL-01.json} +0 -0
- /data/resources/geometries/AL/{AL-EL.json → AL-03.json} +0 -0
- /data/resources/geometries/AL/{AL-GJ.json → AL-05.json} +0 -0
- /data/resources/geometries/AL/{AL-LE.json → AL-08.json} +0 -0
- /data/resources/geometries/AL/{AL-DI.json → AL-09.json} +0 -0
- /data/resources/geometries/AL/{AL-DR.json → AL-11.json} +0 -0
- /data/resources/geometries/AL/{AL-VL.json → AL-12.json} +0 -0
- /data/resources/geometries/BS/{BS-X01~.json → BS-GC.json} +0 -0
- /data/resources/geometries/CN/{CN-34.json → CN-AH.json} +0 -0
- /data/resources/geometries/CN/{CN-11.json → CN-BJ.json} +0 -0
- /data/resources/geometries/CN/{CN-50.json → CN-CQ.json} +0 -0
- /data/resources/geometries/CN/{CN-35.json → CN-FJ.json} +0 -0
- /data/resources/geometries/CN/{CN-62.json → CN-GS.json} +0 -0
- /data/resources/geometries/CN/{CN-45.json → CN-GX.json} +0 -0
- /data/resources/geometries/CN/{CN-52.json → CN-GZ.json} +0 -0
- /data/resources/geometries/CN/{CN-41.json → CN-HA.json} +0 -0
- /data/resources/geometries/CN/{CN-42.json → CN-HB.json} +0 -0
- /data/resources/geometries/CN/{CN-13.json → CN-HE.json} +0 -0
- /data/resources/geometries/CN/{CN-46.json → CN-HI.json} +0 -0
- /data/resources/geometries/CN/{CN-23.json → CN-HL.json} +0 -0
- /data/resources/geometries/CN/{CN-43.json → CN-HN.json} +0 -0
- /data/resources/geometries/CN/{CN-22.json → CN-JL.json} +0 -0
- /data/resources/geometries/CN/{CN-32.json → CN-JS.json} +0 -0
- /data/resources/geometries/CN/{CN-36.json → CN-JX.json} +0 -0
- /data/resources/geometries/CN/{CN-21.json → CN-LN.json} +0 -0
- /data/resources/geometries/CN/{CN-15.json → CN-NM.json} +0 -0
- /data/resources/geometries/CN/{CN-64.json → CN-NX.json} +0 -0
- /data/resources/geometries/CN/{CN-63.json → CN-QH.json} +0 -0
- /data/resources/geometries/CN/{CN-51.json → CN-SC.json} +0 -0
- /data/resources/geometries/CN/{CN-37.json → CN-SD.json} +0 -0
- /data/resources/geometries/CN/{CN-31.json → CN-SH.json} +0 -0
- /data/resources/geometries/CN/{CN-61.json → CN-SN.json} +0 -0
- /data/resources/geometries/CN/{CN-14.json → CN-SX.json} +0 -0
- /data/resources/geometries/CN/{CN-12.json → CN-TJ.json} +0 -0
- /data/resources/geometries/CN/{CN-33.json → CN-ZJ.json} +0 -0
- /data/resources/geometries/{TW/TW.json → CN-TW/CN-TW.json} +0 -0
- /data/resources/geometries/CO/{CO-X01~.json → CO-DC.json} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 568c6687797f8ae95c34e80b649fcc766580e0d5eabc6d33bbd277fec128aad0
|
4
|
+
data.tar.gz: 89d2a695dc3fe4d7d529b97b51d85d024cd121069d10debaac10b85030a5b6f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe3f7afbcf83dfea4aa789b1b6f99ad486760f241c163eceed525da3cfa744726ae2d198413da1f36c8067e15bacaf5cf4974755920b4a79e1b8a5e489c5f52c
|
7
|
+
data.tar.gz: 8dc9a4a3959b8302ebd201672874f20cc922aa33f5508a3a13c09589eece2627fd5b6251f5fa362665d15991842f1f493f2adb39f120277b0a3b6cc449378b8a
|
data/.gitlab-ci.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,19 +1,11 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-performance
|
3
|
+
- rubocop-rake
|
4
|
+
- rubocop-rspec
|
5
|
+
|
1
6
|
AllCops:
|
2
7
|
TargetRubyVersion: 2.7
|
3
8
|
NewCops: enable
|
4
|
-
SuggestExtensions: false
|
5
|
-
|
6
|
-
Metrics/BlockLength:
|
7
|
-
Exclude:
|
8
|
-
- 'natural_earth.gemspec'
|
9
|
-
- 'spec/**/*.rb'
|
10
|
-
- '**/*.rake'
|
11
9
|
|
12
10
|
Naming/VariableNumber:
|
13
11
|
Enabled: false
|
14
|
-
|
15
|
-
Style/AsciiComments:
|
16
|
-
Enabled: false
|
17
|
-
|
18
|
-
Style/Documentation:
|
19
|
-
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [4.1.1] - 2023-04-25
|
4
|
+
|
5
|
+
### Fixed
|
6
|
+
|
7
|
+
- Remove subdivisions without official ISO-3166-2 code (ex: `KI-X01~`)
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
|
11
|
+
- Upgrade development environment to Ruby 3.2
|
12
|
+
- Regenerate resources from the latest NaturalEarth release with:
|
13
|
+
* Taiwan (`TW`) as a China subdivision
|
14
|
+
* Kosovo (`XK`) as an unrecognized sovereign state
|
15
|
+
* Renamed subdivisions in some countries to match ISO-3166-2 codes
|
16
|
+
|
17
|
+
## [4.1.0] - 2021-08-26
|
4
18
|
|
5
19
|
- Initial release
|
data/Gemfile
CHANGED
@@ -4,3 +4,21 @@ source 'https://rubygems.org'
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in natural_earth.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
group :development, :test do
|
9
|
+
# Rake tasks
|
10
|
+
gem 'multi_json'
|
11
|
+
gem 'oj'
|
12
|
+
gem 'rake', '~> 13.0'
|
13
|
+
gem 'rgeo-shapefile', '~> 3.0'
|
14
|
+
|
15
|
+
# Tests
|
16
|
+
gem 'rspec', '~> 3.0'
|
17
|
+
gem 'twitter_cldr', '~> 6.7'
|
18
|
+
|
19
|
+
# Linting
|
20
|
+
gem 'rubocop', require: false
|
21
|
+
gem 'rubocop-performance', require: false
|
22
|
+
gem 'rubocop-rake', require: false
|
23
|
+
gem 'rubocop-rspec', require: false
|
24
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
natural_earth (4.1.
|
4
|
+
natural_earth (4.1.1)
|
5
5
|
rgeo-geojson (~> 2.1)
|
6
6
|
|
7
7
|
GEM
|
@@ -10,61 +10,71 @@ GEM
|
|
10
10
|
ast (2.4.2)
|
11
11
|
camertron-eprun (1.1.1)
|
12
12
|
cldr-plurals-runtime-rb (1.1.0)
|
13
|
-
concurrent-ruby (1.
|
14
|
-
dbf (4.2.
|
15
|
-
diff-lcs (1.
|
13
|
+
concurrent-ruby (1.2.2)
|
14
|
+
dbf (4.2.2)
|
15
|
+
diff-lcs (1.5.0)
|
16
|
+
json (2.6.3)
|
16
17
|
multi_json (1.15.0)
|
17
|
-
oj (3.
|
18
|
-
parallel (1.
|
19
|
-
parser (3.
|
18
|
+
oj (3.14.3)
|
19
|
+
parallel (1.23.0)
|
20
|
+
parser (3.2.2.1)
|
20
21
|
ast (~> 2.4.1)
|
21
|
-
rainbow (3.
|
22
|
+
rainbow (3.1.1)
|
22
23
|
rake (13.0.6)
|
23
|
-
regexp_parser (2.
|
24
|
+
regexp_parser (2.8.0)
|
24
25
|
rexml (3.2.5)
|
25
|
-
rgeo (
|
26
|
+
rgeo (3.0.0)
|
26
27
|
rgeo-geojson (2.1.1)
|
27
28
|
rgeo (>= 1.0.0)
|
28
29
|
rgeo-shapefile (3.0.0)
|
29
30
|
dbf (~> 4.0)
|
30
31
|
rgeo (>= 1.0)
|
31
|
-
rspec (3.
|
32
|
-
rspec-core (~> 3.
|
33
|
-
rspec-expectations (~> 3.
|
34
|
-
rspec-mocks (~> 3.
|
35
|
-
rspec-core (3.
|
36
|
-
rspec-support (~> 3.
|
37
|
-
rspec-expectations (3.
|
32
|
+
rspec (3.12.0)
|
33
|
+
rspec-core (~> 3.12.0)
|
34
|
+
rspec-expectations (~> 3.12.0)
|
35
|
+
rspec-mocks (~> 3.12.0)
|
36
|
+
rspec-core (3.12.2)
|
37
|
+
rspec-support (~> 3.12.0)
|
38
|
+
rspec-expectations (3.12.3)
|
38
39
|
diff-lcs (>= 1.2.0, < 2.0)
|
39
|
-
rspec-support (~> 3.
|
40
|
-
rspec-mocks (3.
|
40
|
+
rspec-support (~> 3.12.0)
|
41
|
+
rspec-mocks (3.12.5)
|
41
42
|
diff-lcs (>= 1.2.0, < 2.0)
|
42
|
-
rspec-support (~> 3.
|
43
|
-
rspec-support (3.
|
44
|
-
rubocop (1.
|
43
|
+
rspec-support (~> 3.12.0)
|
44
|
+
rspec-support (3.12.0)
|
45
|
+
rubocop (1.50.2)
|
46
|
+
json (~> 2.3)
|
45
47
|
parallel (~> 1.10)
|
46
|
-
parser (>= 3.
|
48
|
+
parser (>= 3.2.0.0)
|
47
49
|
rainbow (>= 2.2.2, < 4.0)
|
48
50
|
regexp_parser (>= 1.8, < 3.0)
|
49
|
-
rexml
|
50
|
-
rubocop-ast (>= 1.
|
51
|
+
rexml (>= 3.2.5, < 4.0)
|
52
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
51
53
|
ruby-progressbar (~> 1.7)
|
52
|
-
unicode-display_width (>=
|
53
|
-
rubocop-ast (1.
|
54
|
-
parser (>= 3.
|
55
|
-
rubocop-
|
54
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
55
|
+
rubocop-ast (1.28.0)
|
56
|
+
parser (>= 3.2.1.0)
|
57
|
+
rubocop-capybara (2.18.0)
|
58
|
+
rubocop (~> 1.41)
|
59
|
+
rubocop-performance (1.17.1)
|
60
|
+
rubocop (>= 1.7.0, < 2.0)
|
61
|
+
rubocop-ast (>= 0.4.0)
|
62
|
+
rubocop-rake (0.6.0)
|
56
63
|
rubocop (~> 1.0)
|
57
|
-
|
58
|
-
|
59
|
-
|
64
|
+
rubocop-rspec (2.20.0)
|
65
|
+
rubocop (~> 1.33)
|
66
|
+
rubocop-capybara (~> 2.17)
|
67
|
+
ruby-progressbar (1.13.0)
|
68
|
+
twitter_cldr (6.11.5)
|
60
69
|
camertron-eprun
|
61
70
|
cldr-plurals-runtime-rb (~> 1.1)
|
62
71
|
tzinfo
|
63
|
-
tzinfo (2.0.
|
72
|
+
tzinfo (2.0.6)
|
64
73
|
concurrent-ruby (~> 1.0)
|
65
|
-
unicode-display_width (2.
|
74
|
+
unicode-display_width (2.4.2)
|
66
75
|
|
67
76
|
PLATFORMS
|
77
|
+
ruby
|
68
78
|
x86_64-darwin-20
|
69
79
|
|
70
80
|
DEPENDENCIES
|
@@ -75,8 +85,10 @@ DEPENDENCIES
|
|
75
85
|
rgeo-shapefile (~> 3.0)
|
76
86
|
rspec (~> 3.0)
|
77
87
|
rubocop
|
88
|
+
rubocop-performance
|
89
|
+
rubocop-rake
|
78
90
|
rubocop-rspec
|
79
91
|
twitter_cldr (~> 6.7)
|
80
92
|
|
81
93
|
BUNDLED WITH
|
82
|
-
2.
|
94
|
+
2.4.6
|
@@ -1,19 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module NaturalEarth
|
4
|
+
# Give access to the list of supported countries
|
4
5
|
module Countries
|
5
6
|
class << self
|
6
7
|
include ISO3166
|
7
8
|
alias normalize as_iso3166_1
|
8
9
|
|
10
|
+
# Return the list of supported countries as iso-3166-1 alpha-2 codes
|
9
11
|
def supported
|
10
12
|
COUNTRIES.keys
|
11
13
|
end
|
12
14
|
|
15
|
+
# Check if a country is supported
|
13
16
|
def supported?(iso3166_1)
|
14
17
|
COUNTRIES.key?(normalize(iso3166_1))
|
15
18
|
end
|
16
19
|
|
20
|
+
# Fetch information about a country, as a NaturalEarth::Country instance
|
17
21
|
def fetch(iso3166_1)
|
18
22
|
raise KeyError unless supported?(iso3166_1)
|
19
23
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module NaturalEarth
|
4
|
-
module ISO3166
|
4
|
+
module ISO3166 # :nodoc:
|
5
5
|
# Normalize an ISO-3166-1 code (alpha-2, alpha-3 or numeric) or ISO-3166-2 code to ISO-3166 alpha-2
|
6
6
|
def as_iso3166_1(iso3166)
|
7
7
|
return numeric_to_alpha2(iso3166) if numeric? iso3166
|
@@ -25,11 +25,11 @@ module NaturalEarth
|
|
25
25
|
protected
|
26
26
|
|
27
27
|
def reformat(code)
|
28
|
-
code.to_s.upcase.
|
28
|
+
code.to_s.upcase.tr('_', '-')
|
29
29
|
end
|
30
30
|
|
31
31
|
def extract(code)
|
32
|
-
return code.split('-').first if code.
|
32
|
+
return code.split('-').first if code.include?('-')
|
33
33
|
|
34
34
|
code
|
35
35
|
end
|
@@ -1,19 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module NaturalEarth
|
4
|
+
# Give access to the list of supported subdivisions
|
4
5
|
module Subdivisions
|
5
6
|
class << self
|
6
7
|
include ISO3166
|
7
8
|
alias normalize as_iso3166_2
|
8
9
|
|
10
|
+
# Return the list of supported subdivisions, as iso-3166-2 codes
|
9
11
|
def supported
|
10
12
|
SUBDIVISIONS.keys
|
11
13
|
end
|
12
14
|
|
15
|
+
# Check if a subdivision is supported
|
13
16
|
def supported?(iso3166)
|
14
17
|
SUBDIVISIONS.key?(normalize(iso3166))
|
15
18
|
end
|
16
19
|
|
20
|
+
# Fetch information about a subdivision, as a NaturalEarth::Subdivision instance
|
17
21
|
def fetch(iso3166)
|
18
22
|
raise KeyError unless supported?(iso3166)
|
19
23
|
|
@@ -18,6 +18,8 @@ require_relative '../../natural_earth'
|
|
18
18
|
#
|
19
19
|
# [1]: <https://www.naturalearthdata.com/> / <https://github.com/nvkelso/natural-earth-vector>
|
20
20
|
# [2]: <https://www.naturalearthdata.com/downloads/10m-cultural-vectors/>
|
21
|
+
#
|
22
|
+
# rubocop:disable Metrics/BlockLength
|
21
23
|
namespace :import do
|
22
24
|
desc 'Build GeoJSON resources from Natural Earth full release files'
|
23
25
|
task :cultural, [:dir] => :cleanup do |_t, args|
|
@@ -42,6 +44,9 @@ namespace :import do
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
47
|
+
# Also exist with another name
|
48
|
+
duplicate_countries = %w[FR-971 FR-972 FR-973 FR-974 FR-976]
|
49
|
+
|
45
50
|
data = {
|
46
51
|
'UM' => {
|
47
52
|
'iso-3166-1' => {
|
@@ -61,6 +66,7 @@ namespace :import do
|
|
61
66
|
RGeo::Shapefile::Reader.open(map_units_shp) do |shapefile|
|
62
67
|
shapefile.each do |entry|
|
63
68
|
next if entry['ISO_A2'].empty? || entry['ISO_A2'].to_i == -99
|
69
|
+
next if duplicate_countries.include?(entry['ISO_A2'])
|
64
70
|
|
65
71
|
data[entry['ISO_A2']] = {
|
66
72
|
'iso-3166-1' => {
|
@@ -82,6 +88,7 @@ namespace :import do
|
|
82
88
|
RGeo::Shapefile::Reader.open(countries_shp) do |shapefile|
|
83
89
|
shapefile.each do |entry|
|
84
90
|
next if entry['ISO_A2'].empty? || entry['ISO_A2'].to_i == -99
|
91
|
+
next if duplicate_countries.include?(entry['ISO_A2'])
|
85
92
|
next if data.key?(entry['ISO_A2'])
|
86
93
|
|
87
94
|
data[entry['ISO_A2']] = {
|
@@ -128,7 +135,7 @@ namespace :import do
|
|
128
135
|
end
|
129
136
|
|
130
137
|
# …and some subdivisions.
|
131
|
-
unrecognized_sovereign_states = ['
|
138
|
+
unrecognized_sovereign_states = ['Kosovo', 'Northern Cyprus', 'Somaliland']
|
132
139
|
nope = ['West Bank', 'Siachen Glacier'] # Just wikipedia them and you'll understand
|
133
140
|
|
134
141
|
subdivisions = {
|
@@ -168,7 +175,7 @@ namespace :import do
|
|
168
175
|
RGeo::Shapefile::Reader.open(map_units_shp) do |shapefile|
|
169
176
|
shapefile.each do |entry|
|
170
177
|
next unless entry['ISO_A2'].empty? || entry['ISO_A2'].to_i == -99
|
171
|
-
next if countries.
|
178
|
+
next if countries.key?(entry['GEOUNIT'])
|
172
179
|
next if unrecognized_sovereign_states.include?(entry['GEOUNIT']) || nope.include?(entry['GEOUNIT'])
|
173
180
|
|
174
181
|
subdivision = subdivisions[entry['GEOUNIT']]
|
@@ -182,13 +189,38 @@ namespace :import do
|
|
182
189
|
end
|
183
190
|
end
|
184
191
|
|
185
|
-
# Some countries are
|
192
|
+
# Some countries are wrongly considered as subdivisions in Natural Earth.
|
186
193
|
country_as_subdivisions = {
|
194
|
+
'Guyane française' => {
|
195
|
+
'iso-3166-1' => { 'alpha-2' => 'GF', 'alpha-3' => 'GUF', 'numeric' => 254 },
|
196
|
+
'continent' => 'South America',
|
197
|
+
'region' => 'South America'
|
198
|
+
},
|
187
199
|
'Gibraltar' => {
|
188
200
|
'iso-3166-1' => { 'alpha-2' => 'GI', 'alpha-3' => 'GIB', 'numeric' => 292 },
|
189
201
|
'continent' => data['ES']['continent'],
|
190
202
|
'region' => data['ES']['region']
|
191
203
|
},
|
204
|
+
'Guadeloupe' => {
|
205
|
+
'iso-3166-1' => { 'alpha-2' => 'GP', 'alpha-3' => 'GLP', 'numeric' => 312 },
|
206
|
+
'continent' => 'North America',
|
207
|
+
'region' => 'Caribbean'
|
208
|
+
},
|
209
|
+
'Martinique' => {
|
210
|
+
'iso-3166-1' => { 'alpha-2' => 'MQ', 'alpha-3' => 'MTQ', 'numeric' => 474 },
|
211
|
+
'continent' => 'North America',
|
212
|
+
'region' => 'Caribbean'
|
213
|
+
},
|
214
|
+
'Mayotte' => {
|
215
|
+
'iso-3166-1' => { 'alpha-2' => 'YT', 'alpha-3' => 'MYT', 'numeric' => 175 },
|
216
|
+
'continent' => 'Africa',
|
217
|
+
'region' => 'Eastern Africa'
|
218
|
+
},
|
219
|
+
'La Réunion' => {
|
220
|
+
'iso-3166-1' => { 'alpha-2' => 'RE', 'alpha-3' => 'REU', 'numeric' => 638 },
|
221
|
+
'continent' => 'Seven seas (open ocean)',
|
222
|
+
'region' => 'Eastern Africa'
|
223
|
+
},
|
192
224
|
'Tuvalu' => {
|
193
225
|
'iso-3166-1' => { 'alpha-2' => 'TV', 'alpha-3' => 'TUV', 'numeric' => 798 },
|
194
226
|
'continent' => data['SB']['continent'],
|
@@ -203,7 +235,7 @@ namespace :import do
|
|
203
235
|
|
204
236
|
# Some countries have non official subdivisions in Natural Earth.
|
205
237
|
countries_without_subdivisions = %w[
|
206
|
-
AI AQ AS AW AX BL CK CW EH FK FO GG GS GU HK HM IM IO JE KY MF MP NC NF NU PF PM PN TC TF VA VG VI
|
238
|
+
AI AQ AS AW AX BL CK CW EH FK FO GG GS GU HK HM IM IO JE KY MC MF MP NC NF NU PF PM PN TC TF TW VA VG VI XK
|
207
239
|
]
|
208
240
|
|
209
241
|
# Some subdivisions have incorrect ISO-3166-2.
|
@@ -216,6 +248,11 @@ namespace :import do
|
|
216
248
|
'TJ-X01~' => 'TJ-RA'
|
217
249
|
}
|
218
250
|
|
251
|
+
# Some subdivisions have missing names.
|
252
|
+
subdivisions_missing_names = {
|
253
|
+
'CO-DC' => 'Bogotá'
|
254
|
+
}
|
255
|
+
|
219
256
|
subdivisions_shp = File.join(dir, format(file_patterns[:subdivisions], ext: 'shp'))
|
220
257
|
RGeo::Shapefile::Reader.open(subdivisions_shp) do |shapefile|
|
221
258
|
shapefile.each do |entry|
|
@@ -244,13 +281,15 @@ namespace :import do
|
|
244
281
|
entry['iso_3166_2']
|
245
282
|
end
|
246
283
|
|
247
|
-
if iso_3166_2.
|
248
|
-
puts format('
|
284
|
+
if iso_3166_2.end_with?('~')
|
285
|
+
puts format('Warning: unknown subdivision %<name>s (%<iso_3166>s)', name: entry['name'], iso_3166: iso_3166_2)
|
286
|
+
next
|
249
287
|
end
|
250
288
|
|
251
|
-
|
252
|
-
|
253
|
-
'
|
289
|
+
name = subdivisions_missing_names.key?(iso_3166_2) ? subdivisions_missing_names[iso_3166_2] : entry['name']
|
290
|
+
data[entry['iso_a2']]['subdivisions'][iso_3166_2] = {
|
291
|
+
'name' => name,
|
292
|
+
'iso-3166-2' => iso_3166_2,
|
254
293
|
'geometry' => RGeo::GeoJSON.encode(entry.geometry)
|
255
294
|
}
|
256
295
|
end
|
@@ -285,7 +324,7 @@ namespace :import do
|
|
285
324
|
file.puts MultiJson.dump(country['geometry'])
|
286
325
|
end
|
287
326
|
|
288
|
-
next if country['subdivisions'].
|
327
|
+
next if country['subdivisions'].empty?
|
289
328
|
|
290
329
|
country['subdivisions'].each do |(iso_3166_2, subdivision)|
|
291
330
|
File.open(File.join(geometries_dir, iso_3166_1, "#{iso_3166_2}.json"), 'wb') do |file|
|
@@ -295,6 +334,7 @@ namespace :import do
|
|
295
334
|
end
|
296
335
|
end
|
297
336
|
|
337
|
+
desc 'Remove generated GeoJSON resources'
|
298
338
|
task :cleanup do
|
299
339
|
dir = NaturalEarth::RESOURCES_DIR
|
300
340
|
next unless File.exist?(dir)
|
@@ -306,3 +346,4 @@ namespace :import do
|
|
306
346
|
puts "#{dir} removed."
|
307
347
|
end
|
308
348
|
end
|
349
|
+
# rubocop:enable Metrics/BlockLength
|
data/lib/natural_earth.rb
CHANGED
data/natural_earth.gemspec
CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.description = 'Ruby wrapper around data from Natural Earth, free vector and raster map data @ naturalearthdata.com.'
|
14
14
|
s.homepage = 'https://gitlab.com/vaolo-public/ruby/natural-earth-gem'
|
15
15
|
|
16
|
+
s.metadata['rubygems_mfa_required'] = 'true'
|
16
17
|
s.metadata['allowed_push_host'] = 'https://rubygems.org'
|
17
18
|
s.metadata['homepage_uri'] = s.homepage
|
18
19
|
s.metadata['source_code_uri'] = s.homepage
|
@@ -28,16 +29,4 @@ Gem::Specification.new do |s|
|
|
28
29
|
s.required_ruby_version = '>= 2.7.0'
|
29
30
|
|
30
31
|
s.add_dependency 'rgeo-geojson', '~> 2.1'
|
31
|
-
|
32
|
-
# Rake tasks
|
33
|
-
s.add_development_dependency 'multi_json'
|
34
|
-
s.add_development_dependency 'oj'
|
35
|
-
s.add_development_dependency 'rake', '~> 13.0'
|
36
|
-
s.add_development_dependency 'rgeo-shapefile', '~> 3.0'
|
37
|
-
# Tests
|
38
|
-
s.add_development_dependency 'rspec', '~> 3.0'
|
39
|
-
s.add_development_dependency 'twitter_cldr', '~> 6.7'
|
40
|
-
# Linting
|
41
|
-
s.add_development_dependency 'rubocop'
|
42
|
-
s.add_development_dependency 'rubocop-rspec'
|
43
32
|
end
|