Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions draftlogs/7622_feat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Generate list of ISO codes for provided topojson maps, update info for some disputed territories [[#7622](https://github.com/plotly/plotly.js/pull/7622)]
29 changes: 26 additions & 3 deletions topojson/bin/process_geodata.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,20 @@ function getJsonFile(filename) {
}
}

function createCountriesList(geojsonPath, outputPath) {
const geojson = getJsonFile(geojsonPath);
if (!geojson.features) return;

const countryData = geojson.features
.map((feature) => {
const { iso3cd, nam_en } = feature.properties;
return { iso3cd, name: nam_en };
})
.sort((a, b) => a.name.localeCompare(b.name));

fs.writeFileSync(outputPath, JSON.stringify(countryData));
}

function addCentroidsToGeojson(geojsonPath) {
const geojson = getJsonFile(geojsonPath);
if (!geojson.features) return;
Expand Down Expand Up @@ -363,9 +377,15 @@ const commandsCountries50m = [
// Subtract Caspian Sea from country polygons
`-filter 'globalid === "{BBBEF27F-A6F4-4FBC-9729-77B3A8739409}"' target=all_features + name=caspian_sea`,
'-erase source=caspian_sea target=all_features',
// Update country codes for disputed territories at Egypt/Sudan border: https://en.wikipedia.org/wiki/Egypt%E2%80%93Sudan_border
`-each 'if (globalid === "{CA12D116-7A19-41D1-9622-17C12CCC720D}") iso3cd = "XHT"'`, // Halaib Triangle
`-each 'if (globalid === "{9FD54A50-0BFB-4385-B342-1C3BDEE5ED9B}") iso3cd = "XBT"'`, // Bir Tawil
// Update country codes, names for disputed territories
// https://en.wikipedia.org/wiki/Ilemi_Triangle
`-each 'if (globalid === "{CAB4B11D-5D1D-495E-AC9C-8A18A5A4370B}") { iso3cd = "XIT"; nam_en = "Ilemi Triangle"; }'`,
// https://en.wikipedia.org/wiki/Egypt%E2%80%93Sudan_border
`-each 'if (globalid === "{CA12D116-7A19-41D1-9622-17C12CCC720D}") { iso3cd = "XHT"; nam_en = "Halaib Triangle"; }'`,
`-each 'if (globalid === "{9FD54A50-0BFB-4385-B342-1C3BDEE5ED9B}") { iso3cd = "XBT"; nam_en = "Bir Tawil"; }'`,
// https://en.wikipedia.org/wiki/Sino-Indian_border_dispute
`-each 'if (globalid === "{9AB8E07B-A251-47AB-9B0C-F969DBE07558}") nam_en = "Aksai Chin"'`,
`-each 'if (globalid === "{F180660F-073C-402E-AF75-1E448B4C30F1}") nam_en = "Arunachal Pradesh"'`,
`-each 'if (iso3cd) iso3cd = iso3cd.toUpperCase()'`,
`-filter '${filters.countries}'`,
// Snap polygons to clean up land, coastlines layers
Expand All @@ -375,6 +395,9 @@ const commandsCountries50m = [
await mapshaper.runCommands(commandsCountries50m);
clampToAntimeridian(outputFilePathCountries50m);

// Build list of countries, ISO codes for documentation
createCountriesList(outputFilePathCountries50m, `${outputDirTopojson}/country_names_iso_codes.json`);

// Get land from all polygon features
const inputFilePathLand50m = outputFilePathCountries50m;
const outputFilePathLand50m = `${outputDirGeojson}/${unFilename}_50m/land.geojson`;
Expand Down
2 changes: 1 addition & 1 deletion topojson/dist/africa_110m.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion topojson/dist/africa_50m.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions topojson/dist/country_names_iso_codes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"iso3cd":"AFG","name":"Afghanistan"},{"iso3cd":"XAC","name":"Aksai Chin"},{"iso3cd":"ALA","name":"Åland Islands"},{"iso3cd":"ALB","name":"Albania"},{"iso3cd":"DZA","name":"Algeria"},{"iso3cd":"ASM","name":"American Samoa"},{"iso3cd":"AND","name":"Andorra"},{"iso3cd":"AGO","name":"Angola"},{"iso3cd":"AIA","name":"Anguilla"},{"iso3cd":"ATA","name":"Antarctica"},{"iso3cd":"ATG","name":"Antigua and Barbuda"},{"iso3cd":"ARG","name":"Argentina"},{"iso3cd":"ARM","name":"Armenia"},{"iso3cd":"ABW","name":"Aruba"},{"iso3cd":"XAP","name":"Arunachal Pradesh"},{"iso3cd":"AUS","name":"Australia"},{"iso3cd":"AUT","name":"Austria"},{"iso3cd":"AZE","name":"Azerbaijan"},{"iso3cd":"PRT","name":"Azores Islands"},{"iso3cd":"BHS","name":"Bahamas"},{"iso3cd":"BHR","name":"Bahrain"},{"iso3cd":"BGD","name":"Bangladesh"},{"iso3cd":"BRB","name":"Barbados"},{"iso3cd":"BLR","name":"Belarus"},{"iso3cd":"BEL","name":"Belgium"},{"iso3cd":"BLZ","name":"Belize"},{"iso3cd":"BEN","name":"Benin"},{"iso3cd":"BMU","name":"Bermuda"},{"iso3cd":"BTN","name":"Bhutan"},{"iso3cd":"XBT","name":"Bir Tawil"},{"iso3cd":"BOL","name":"Bolivia (Plurinational State of)"},{"iso3cd":"BES","name":"Bonaire"},{"iso3cd":"BIH","name":"Bosnia and Herzegovina"},{"iso3cd":"BWA","name":"Botswana"},{"iso3cd":"BVT","name":"Bouvet Island"},{"iso3cd":"BRA","name":"Brazil"},{"iso3cd":"VGB","name":"British Virgin Islands"},{"iso3cd":"BRN","name":"Brunei Darussalam"},{"iso3cd":"BGR","name":"Bulgaria"},{"iso3cd":"BFA","name":"Burkina Faso"},{"iso3cd":"BDI","name":"Burundi"},{"iso3cd":"CPV","name":"Cabo Verde"},{"iso3cd":"KHM","name":"Cambodia"},{"iso3cd":"CMR","name":"Cameroon"},{"iso3cd":"CAN","name":"Canada"},{"iso3cd":"ESP","name":"Canary Islands"},{"iso3cd":"CYM","name":"Cayman Islands"},{"iso3cd":"CAF","name":"Central African Republic"},{"iso3cd":"TCD","name":"Chad"},{"iso3cd":"MUS","name":"Chagos Archipelago"},{"iso3cd":"CHL","name":"Chile"},{"iso3cd":"CHN","name":"China"},{"iso3cd":"CXR","name":"Christmas Island"},{"iso3cd":"CCK","name":"Cocos (Keeling) Islands"},{"iso3cd":"COL","name":"Colombia"},{"iso3cd":"COM","name":"Comoros"},{"iso3cd":"COG","name":"Congo"},{"iso3cd":"COK","name":"Cook Islands"},{"iso3cd":"CRI","name":"Costa Rica"},{"iso3cd":"CIV","name":"Côte d'Ivoire"},{"iso3cd":"HRV","name":"Croatia"},{"iso3cd":"CUB","name":"Cuba"},{"iso3cd":"CUW","name":"Curaçao"},{"iso3cd":"CYP","name":"Cyprus"},{"iso3cd":"CZE","name":"Czechia"},{"iso3cd":"PRK","name":"Democratic People's Republic of Korea"},{"iso3cd":"COD","name":"Democratic Republic of the Congo"},{"iso3cd":"DNK","name":"Denmark"},{"iso3cd":"DJI","name":"Djibouti"},{"iso3cd":"DMA","name":"Dominica"},{"iso3cd":"DOM","name":"Dominican Republic"},{"iso3cd":"ECU","name":"Ecuador"},{"iso3cd":"EGY","name":"Egypt"},{"iso3cd":"SLV","name":"El Salvador"},{"iso3cd":"GNQ","name":"Equatorial Guinea"},{"iso3cd":"ERI","name":"Eritrea"},{"iso3cd":"EST","name":"Estonia"},{"iso3cd":"SWZ","name":"Eswatini"},{"iso3cd":"ETH","name":"Ethiopia"},{"iso3cd":"FLK","name":"Falkland Islands (Malvinas)"},{"iso3cd":"FRO","name":"Faroe Islands"},{"iso3cd":"FJI","name":"Fiji"},{"iso3cd":"FIN","name":"Finland"},{"iso3cd":"FRA","name":"France"},{"iso3cd":"GUF","name":"French Guiana"},{"iso3cd":"PYF","name":"French Polynesia"},{"iso3cd":"ATF","name":"French Southern Territories"},{"iso3cd":"GAB","name":"Gabon"},{"iso3cd":"ECU","name":"Galápagos Islands"},{"iso3cd":"GMB","name":"Gambia"},{"iso3cd":"PSE","name":"Gaza"},{"iso3cd":"GEO","name":"Georgia"},{"iso3cd":"DEU","name":"Germany"},{"iso3cd":"GHA","name":"Ghana"},{"iso3cd":"GIB","name":"Gibraltar"},{"iso3cd":"GRC","name":"Greece"},{"iso3cd":"GRL","name":"Greenland"},{"iso3cd":"GRD","name":"Grenada"},{"iso3cd":"GLP","name":"Guadeloupe"},{"iso3cd":"GUM","name":"Guam"},{"iso3cd":"GTM","name":"Guatemala"},{"iso3cd":"GGY","name":"Guernsey"},{"iso3cd":"GIN","name":"Guinea"},{"iso3cd":"GNB","name":"Guinea-Bissau"},{"iso3cd":"GUY","name":"Guyana"},{"iso3cd":"HTI","name":"Haiti"},{"iso3cd":"XHT","name":"Halaib Triangle"},{"iso3cd":"HMD","name":"Heard Island and McDonald Islands"},{"iso3cd":"HND","name":"Honduras"},{"iso3cd":"HKG","name":"Hong Kong"},{"iso3cd":"HUN","name":"Hungary"},{"iso3cd":"ISL","name":"Iceland"},{"iso3cd":"XIT","name":"Ilemi Triangle"},{"iso3cd":"IND","name":"India"},{"iso3cd":"IDN","name":"Indonesia"},{"iso3cd":"IRN","name":"Iran (Islamic Republic of)"},{"iso3cd":"IRQ","name":"Iraq"},{"iso3cd":"IRL","name":"Ireland"},{"iso3cd":"IMN","name":"Isle of Man"},{"iso3cd":"ISR","name":"Israel"},{"iso3cd":"ITA","name":"Italy"},{"iso3cd":"JAM","name":"Jamaica"},{"iso3cd":"XJK","name":"Jammu and Kashmir"},{"iso3cd":"JPN","name":"Japan"},{"iso3cd":"JEY","name":"Jersey"},{"iso3cd":"JOR","name":"Jordan"},{"iso3cd":"KAZ","name":"Kazakhstan"},{"iso3cd":"KEN","name":"Kenya"},{"iso3cd":"NLD","name":"Kingdom of the Netherlands"},{"iso3cd":"KIR","name":"Kiribati"},{"iso3cd":"KWT","name":"Kuwait"},{"iso3cd":"KGZ","name":"Kyrgyzstan"},{"iso3cd":"LAO","name":"Lao People's Democratic Republic"},{"iso3cd":"LVA","name":"Latvia"},{"iso3cd":"LBN","name":"Lebanon"},{"iso3cd":"LSO","name":"Lesotho"},{"iso3cd":"LBR","name":"Liberia"},{"iso3cd":"LBY","name":"Libya"},{"iso3cd":"LIE","name":"Liechtenstein"},{"iso3cd":"LTU","name":"Lithuania"},{"iso3cd":"LUX","name":"Luxembourg"},{"iso3cd":"MAC","name":"Macao"},{"iso3cd":"MDG","name":"Madagascar"},{"iso3cd":"PRT","name":"Madeira Island"},{"iso3cd":"MWI","name":"Malawi"},{"iso3cd":"MYS","name":"Malaysia"},{"iso3cd":"MDV","name":"Maldives"},{"iso3cd":"MLI","name":"Mali"},{"iso3cd":"MLT","name":"Malta"},{"iso3cd":"MHL","name":"Marshall Islands"},{"iso3cd":"MTQ","name":"Martinique"},{"iso3cd":"MRT","name":"Mauritania"},{"iso3cd":"MUS","name":"Mauritius"},{"iso3cd":"MYT","name":"Mayotte"},{"iso3cd":"MEX","name":"Mexico"},{"iso3cd":"FSM","name":"Micronesia (Federated States of)"},{"iso3cd":"MCO","name":"Monaco"},{"iso3cd":"MNG","name":"Mongolia"},{"iso3cd":"MNE","name":"Montenegro"},{"iso3cd":"MSR","name":"Montserrat"},{"iso3cd":"MAR","name":"Morocco"},{"iso3cd":"MOZ","name":"Mozambique"},{"iso3cd":"MMR","name":"Myanmar"},{"iso3cd":"NAM","name":"Namibia"},{"iso3cd":"NRU","name":"Nauru"},{"iso3cd":"NPL","name":"Nepal"},{"iso3cd":"NCL","name":"New Caledonia"},{"iso3cd":"NZL","name":"New Zealand"},{"iso3cd":"NIC","name":"Nicaragua"},{"iso3cd":"NER","name":"Niger"},{"iso3cd":"NGA","name":"Nigeria"},{"iso3cd":"NIU","name":"Niue"},{"iso3cd":"NFK","name":"Norfolk Island"},{"iso3cd":"MKD","name":"North Macedonia"},{"iso3cd":"MNP","name":"Northern Mariana Islands"},{"iso3cd":"NOR","name":"Norway"},{"iso3cd":"OMN","name":"Oman"},{"iso3cd":"PAK","name":"Pakistan"},{"iso3cd":"PLW","name":"Palau"},{"iso3cd":"PAN","name":"Panama"},{"iso3cd":"PNG","name":"Papua New Guinea"},{"iso3cd":"PRY","name":"Paraguay"},{"iso3cd":"PER","name":"Peru"},{"iso3cd":"PHL","name":"Philippines"},{"iso3cd":"PCN","name":"Pitcairn"},{"iso3cd":"POL","name":"Poland"},{"iso3cd":"PRT","name":"Portugal"},{"iso3cd":"PRI","name":"Puerto Rico"},{"iso3cd":"QAT","name":"Qatar"},{"iso3cd":"KOR","name":"Republic of Korea"},{"iso3cd":"MDA","name":"Republic of Moldova"},{"iso3cd":"REU","name":"Réunion"},{"iso3cd":"ROU","name":"Romania"},{"iso3cd":"RUS","name":"Russian Federation"},{"iso3cd":"RWA","name":"Rwanda"},{"iso3cd":"BES","name":"Saba"},{"iso3cd":"BLM","name":"Saint Barthélemy"},{"iso3cd":"SHN","name":"Saint Helena"},{"iso3cd":"KNA","name":"Saint Kitts and Nevis"},{"iso3cd":"LCA","name":"Saint Lucia"},{"iso3cd":"MAF","name":"Saint Martin"},{"iso3cd":"SPM","name":"Saint Pierre and Miquelon"},{"iso3cd":"VCT","name":"Saint Vincent and the Grenadines"},{"iso3cd":"WSM","name":"Samoa"},{"iso3cd":"STP","name":"Sao Tome and Principe"},{"iso3cd":"SAU","name":"Saudi Arabia"},{"iso3cd":"SEN","name":"Senegal"},{"iso3cd":"SRB","name":"Serbia"},{"iso3cd":"SYC","name":"Seychelles"},{"iso3cd":"SLE","name":"Sierra Leone"},{"iso3cd":"SGP","name":"Singapore"},{"iso3cd":"BES","name":"Sint Eustatius"},{"iso3cd":"SXM","name":"Sint Maarten"},{"iso3cd":"SVK","name":"Slovakia"},{"iso3cd":"SVN","name":"Slovenia"},{"iso3cd":"SLB","name":"Solomon Islands"},{"iso3cd":"SOM","name":"Somalia"},{"iso3cd":"ZAF","name":"South Africa"},{"iso3cd":"SGS","name":"South Georgia and the South Sandwich Islands"},{"iso3cd":"SSD","name":"South Sudan"},{"iso3cd":"ESP","name":"Spain"},{"iso3cd":"LKA","name":"Sri Lanka"},{"iso3cd":"SDN","name":"Sudan"},{"iso3cd":"SUR","name":"Suriname"},{"iso3cd":"SJM","name":"Svalbard and Jan Mayen Islands"},{"iso3cd":"SWE","name":"Sweden"},{"iso3cd":"CHE","name":"Switzerland"},{"iso3cd":"SYR","name":"Syrian Arab Republic"},{"iso3cd":"TWN","name":"Taiwan"},{"iso3cd":"TJK","name":"Tajikistan"},{"iso3cd":"THA","name":"Thailand"},{"iso3cd":"TLS","name":"Timor-Leste"},{"iso3cd":"TGO","name":"Togo"},{"iso3cd":"TKL","name":"Tokelau"},{"iso3cd":"TON","name":"Tonga"},{"iso3cd":"TTO","name":"Trinidad and Tobago"},{"iso3cd":"TUN","name":"Tunisia"},{"iso3cd":"TUR","name":"Türkiye"},{"iso3cd":"TKM","name":"Turkmenistan"},{"iso3cd":"TCA","name":"Turks and Caicos Islands"},{"iso3cd":"TUV","name":"Tuvalu"},{"iso3cd":"UGA","name":"Uganda"},{"iso3cd":"UKR","name":"Ukraine"},{"iso3cd":"ARE","name":"United Arab Emirates"},{"iso3cd":"GBR","name":"United Kingdom of Great Britain and Northern Ireland"},{"iso3cd":"TZA","name":"United Republic of Tanzania"},{"iso3cd":"USA","name":"United States of America"},{"iso3cd":"VIR","name":"United States Virgin Islands"},{"iso3cd":"URY","name":"Uruguay"},{"iso3cd":"UZB","name":"Uzbekistan"},{"iso3cd":"VUT","name":"Vanuatu"},{"iso3cd":"VEN","name":"Venezuela (Bolivarian Republic of)"},{"iso3cd":"VNM","name":"Viet Nam"},{"iso3cd":"PSE","name":"West Bank"},{"iso3cd":"ESH","name":"Western Sahara"},{"iso3cd":"YEM","name":"Yemen"},{"iso3cd":"ZMB","name":"Zambia"},{"iso3cd":"ZWE","name":"Zimbabwe"}]
2 changes: 1 addition & 1 deletion topojson/dist/world_110m.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion topojson/dist/world_50m.json

Large diffs are not rendered by default.

Loading