Reorder js functions for scratch map a bit

This commit is contained in:
Eugene Burmakin 2024-11-01 13:40:37 +01:00
parent db880a0d5d
commit ef7b4c1fba
3 changed files with 253 additions and 765 deletions

File diff suppressed because one or more lines are too long

View file

@ -21,6 +21,7 @@ import { esriWorldStreetMapLayer } from "../maps/layers";
import { esriWorldTopoMapLayer } from "../maps/layers";
import { esriWorldImageryMapLayer } from "../maps/layers";
import { esriWorldGrayCanvasMapLayer } from "../maps/layers";
import { countryCodesMap } from "../maps/country_codes";
import "leaflet-draw";
@ -41,35 +42,7 @@ export default class extends Controller {
this.routeOpacity = parseFloat(this.userSettings.route_opacity) || 0.6;
this.distanceUnit = this.element.dataset.distance_unit || "km";
this.pointsRenderingMode = this.userSettings.points_rendering_mode || "raw";
this.countryCodeMap = {
'Russia': 'RU',
'Germany': 'DE',
'United States': 'US',
'United Kingdom': 'GB',
'France': 'FR',
'Italy': 'IT',
'Spain': 'ES',
'Canada': 'CA',
'Australia': 'AU',
'Japan': 'JP',
'China': 'CN',
'Brazil': 'BR',
'India': 'IN',
'Mexico': 'MX',
'South Africa': 'ZA',
'South Korea': 'KR',
'Netherlands': 'NL',
'Switzerland': 'CH',
'Sweden': 'SE',
'Norway': 'NO',
'Denmark': 'DK',
'Poland': 'PL',
'Greece': 'GR',
'Portugal': 'PT',
'Ireland': 'IE',
// Add more countries as needed
};
this.countryCodesMap = countryCodesMap();
this.center = this.markers[this.markers.length - 1] || [52.514568, 13.350111];
@ -90,7 +63,7 @@ export default class extends Controller {
this.heatmapLayer = L.heatLayer(this.heatmapMarkers, { radius: 20 }).addTo(this.map);
this.fogOverlay = L.layerGroup(); // Initialize fog layer
this.areasLayer = L.layerGroup(); // Initialize areas layer
this.setupScratchLayer();
this.setupScratchLayer(this.countryCodesMap);
if (!this.settingsButtonAdded) {
this.addSettingsButton();
@ -171,8 +144,7 @@ export default class extends Controller {
this.map.remove();
}
async setupScratchLayer() {
async setupScratchLayer(countryCodesMap) {
this.scratchLayer = L.geoJSON(null, {
style: {
fillColor: '#FFD700',
@ -185,7 +157,7 @@ export default class extends Controller {
const response = await fetch('https://raw.githubusercontent.com/datasets/geo-countries/master/data/countries.geojson')
const worldData = await response.json()
const visitedCountries = this.getVisitedCountries()
const visitedCountries = this.getVisitedCountries(countryCodesMap)
const filteredFeatures = worldData.features.filter(feature =>
visitedCountries.includes(feature.properties.ISO_A2)
)
@ -196,7 +168,7 @@ export default class extends Controller {
})
}
getVisitedCountries() {
getVisitedCountries(countryCodesMap) {
if (!this.markers) return [];
return [...new Set(
@ -204,7 +176,7 @@ export default class extends Controller {
.filter(marker => marker[7]) // Ensure country exists
.map(marker => {
// Convert country name to ISO code, or return the original if not found
return this.countryCodeMap[marker[7]] || marker[7];
return countryCodesMap[marker[7]] || marker[7];
})
)];
}

View file

@ -1,730 +1,246 @@
export function countryCodeMap() {
[
{
"Afghanistan": "AF"
},
{
"Aland Islands": "AX"
},
{
"Albania": "AL"
},
{
"Algeria": "DZ"
},
{
"AmericanSamoa": "AS"
},
{
"Andorra": "AD"
},
{
"Angola": "AO"
},
{
"Anguilla": "AI"
},
{
"Antarctica": "AQ"
},
{
"Antigua and Barbuda": "AG"
},
{
"Argentina": "AR"
},
{
"Armenia": "AM"
},
{
"Aruba": "AW"
},
{
"Australia": "AU"
},
{
"Austria": "AT"
},
{
"Azerbaijan": "AZ"
},
{
"Bahamas": "BS"
},
{
"Bahrain": "BH"
},
{
"Bangladesh": "BD"
},
{
"Barbados": "BB"
},
{
"Belarus": "BY"
},
{
"Belgium": "BE"
},
{
"Belize": "BZ"
},
{
"Benin": "BJ"
},
{
"Bermuda": "BM"
},
{
"Bhutan": "BT"
},
{
"Bolivia, Plurinational State of": "BO"
},
{
"Bosnia and Herzegovina": "BA"
},
{
"Botswana": "BW"
},
{
"Brazil": "BR"
},
{
"British Indian Ocean Territory": "IO"
},
{
"Brunei Darussalam": "BN"
},
{
"Bulgaria": "BG"
},
{
"Burkina Faso": "BF"
},
{
"Burundi": "BI"
},
{
"Cambodia": "KH"
},
{
"Cameroon": "CM"
},
{
"Canada": "CA"
},
{
"Cape Verde": "CV"
},
{
"Cayman Islands": "KY"
},
{
"Central African Republic": "CF"
},
{
"Chad": "TD"
},
{
"Chile": "CL"
},
{
"China": "CN"
},
{
"Christmas Island": "CX"
},
{
"Cocos (Keeling) Islands": "CC"
},
{
"Colombia": "CO"
},
{
"Comoros": "KM"
},
{
"Congo": "CG"
},
{
"Congo, The Democratic Republic of the Congo": "CD"
},
{
"Cook Islands": "CK"
},
{
"Costa Rica": "CR"
},
{
"Cote d'Ivoire": "CI"
},
{
"Croatia": "HR"
},
{
"Cuba": "CU"
},
{
"Cyprus": "CY"
},
{
"Czech Republic": "CZ"
},
{
"Denmark": "DK"
},
{
"Djibouti": "DJ"
},
{
"Dominica": "DM"
},
{
"Dominican Republic": "DO"
},
{
"Ecuador": "EC"
},
{
"Egypt": "EG"
},
{
"El Salvador": "SV"
},
{
"Equatorial Guinea": "GQ"
},
{
"Eritrea": "ER"
},
{
"Estonia": "EE"
},
{
"Ethiopia": "ET"
},
{
"Falkland Islands (Malvinas)": "FK"
},
{
"Faroe Islands": "FO"
},
{
"Fiji": "FJ"
},
{
"Finland": "FI"
},
{
"France": "FR"
},
{
"French Guiana": "GF"
},
{
"French Polynesia": "PF"
},
{
"Gabon": "GA"
},
{
"Gambia": "GM"
},
{
"Georgia": "GE"
},
{
"Germany": "DE"
},
{
"Ghana": "GH"
},
{
"Gibraltar": "GI"
},
{
"Greece": "GR"
},
{
"Greenland": "GL"
},
{
"Grenada": "GD"
},
{
"Guadeloupe": "GP"
},
{
"Guam": "GU"
},
{
"Guatemala": "GT"
},
{
"Guernsey": "GG"
},
{
"Guinea": "GN"
},
{
"Guinea-Bissau": "GW"
},
{
"Guyana": "GY"
},
{
"Haiti": "HT"
},
{
"Holy See (Vatican City State)": "VA"
},
{
"Honduras": "HN"
},
{
"Hong Kong": "HK"
},
{
"Hungary": "HU"
},
{
"Iceland": "IS"
},
{
"India": "IN"
},
{
"Indonesia": "ID"
},
{
"Iran, Islamic Republic of Persian Gulf": "IR"
},
{
"Iraq": "IQ"
},
{
"Ireland": "IE"
},
{
"Isle of Man": "IM"
},
{
"Israel": "IL"
},
{
"Italy": "IT"
},
{
"Jamaica": "JM"
},
{
"Japan": "JP"
},
{
"Jersey": "JE"
},
{
"Jordan": "JO"
},
{
"Kazakhstan": "KZ"
},
{
"Kenya": "KE"
},
{
"Kiribati": "KI"
},
{
"Korea, Democratic People's Republic of Korea": "KP"
},
{
"Korea, Republic of South Korea": "KR"
},
{
"Kuwait": "KW"
},
{
"Kyrgyzstan": "KG"
},
{
"Laos": "LA"
},
{
"Latvia": "LV"
},
{
"Lebanon": "LB"
},
{
"Lesotho": "LS"
},
{
"Liberia": "LR"
},
{
"Libyan Arab Jamahiriya": "LY"
},
{
"Liechtenstein": "LI"
},
{
"Lithuania": "LT"
},
{
"Luxembourg": "LU"
},
{
"Macao": "MO"
},
{
"Macedonia": "MK"
},
{
"Madagascar": "MG"
},
{
"Malawi": "MW"
},
{
"Malaysia": "MY"
},
{
"Maldives": "MV"
},
{
"Mali": "ML"
},
{
"Malta": "MT"
},
{
"Marshall Islands": "MH"
},
{
"Martinique": "MQ"
},
{
"Mauritania": "MR"
},
{
"Mauritius": "MU"
},
{
"Mayotte": "YT"
},
{
"Mexico": "MX"
},
{
"Micronesia, Federated States of Micronesia": "FM"
},
{
"Moldova": "MD"
},
{
"Monaco": "MC"
},
{
"Mongolia": "MN"
},
{
"Montenegro": "ME"
},
{
"Montserrat": "MS"
},
{
"Morocco": "MA"
},
{
"Mozambique": "MZ"
},
{
"Myanmar": "MM"
},
{
"Namibia": "NA"
},
{
"Nauru": "NR"
},
{
"Nepal": "NP"
},
{
"Netherlands": "NL"
},
{
"Netherlands Antilles": "AN"
},
{
"New Caledonia": "NC"
},
{
"New Zealand": "NZ"
},
{
"Nicaragua": "NI"
},
{
"Niger": "NE"
},
{
"Nigeria": "NG"
},
{
"Niue": "NU"
},
{
"Norfolk Island": "NF"
},
{
"Northern Mariana Islands": "MP"
},
{
"Norway": "NO"
},
{
"Oman": "OM"
},
{
"Pakistan": "PK"
},
{
"Palau": "PW"
},
{
"Palestinian Territory, Occupied": "PS"
},
{
"Panama": "PA"
},
{
"Papua New Guinea": "PG"
},
{
"Paraguay": "PY"
},
{
"Peru": "PE"
},
{
"Philippines": "PH"
},
{
"Pitcairn": "PN"
},
{
"Poland": "PL"
},
{
"Portugal": "PT"
},
{
"Puerto Rico": "PR"
},
{
"Qatar": "QA"
},
{
"Romania": "RO"
},
{
"Russia": "RU"
},
{
"Rwanda": "RW"
},
{
"Reunion": "RE"
},
{
"Saint Barthelemy": "BL"
},
{
"Saint Helena, Ascension and Tristan Da Cunha": "SH"
},
{
"Saint Kitts and Nevis": "KN"
},
{
"Saint Lucia": "LC"
},
{
"Saint Martin": "MF"
},
{
"Saint Pierre and Miquelon": "PM"
},
{
"Saint Vincent and the Grenadines": "VC"
},
{
"Samoa": "WS"
},
{
"San Marino": "SM"
},
{
"Sao Tome and Principe": "ST"
},
{
"Saudi Arabia": "SA"
},
{
"Senegal": "SN"
},
{
"Serbia": "RS"
},
{
"Seychelles": "SC"
},
{
"Sierra Leone": "SL"
},
{
"Singapore": "SG"
},
{
"Slovakia": "SK"
},
{
"Slovenia": "SI"
},
{
"Solomon Islands": "SB"
},
{
"Somalia": "SO"
},
{
"South Africa": "ZA"
},
{
"South Sudan": "SS"
},
{
"South Georgia and the South Sandwich Islands": "GS"
},
{
"Spain": "ES"
},
{
"Sri Lanka": "LK"
},
{
"Sudan": "SD"
},
{
"Suriname": "SR"
},
{
"Svalbard and Jan Mayen": "SJ"
},
{
"Swaziland": "SZ"
},
{
"Sweden": "SE"
},
{
"Switzerland": "CH"
},
{
"Syrian Arab Republic": "SY"
},
{
"Taiwan": "TW"
},
{
"Tajikistan": "TJ"
},
{
"Tanzania, United Republic of Tanzania": "TZ"
},
{
"Thailand": "TH"
},
{
"Timor-Leste": "TL"
},
{
"Togo": "TG"
},
{
"Tokelau": "TK"
},
{
"Tonga": "TO"
},
{
"Trinidad and Tobago": "TT"
},
{
"Tunisia": "TN"
},
{
"Turkey": "TR"
},
{
"Turkmenistan": "TM"
},
{
"Turks and Caicos Islands": "TC"
},
{
"Tuvalu": "TV"
},
{
"Uganda": "UG"
},
{
"Ukraine": "UA"
},
{
"United Arab Emirates": "AE"
},
{
"United Kingdom": "GB"
},
{
"United States": "US"
},
{
"Uruguay": "UY"
},
{
"Uzbekistan": "UZ"
},
{
"Vanuatu": "VU"
},
{
"Venezuela, Bolivarian Republic of Venezuela": "VE"
},
{
"Vietnam": "VN"
},
{
"Virgin Islands, British": "VG"
},
{
"Virgin Islands, U.S.": "VI"
},
{
"Wallis and Futuna": "WF"
},
{
"Yemen": "YE"
},
{
"Zambia": "ZM"
},
{
export function countryCodesMap() {
return {
"Afghanistan": "AF",
"Aland Islands": "AX",
"Albania": "AL",
"Algeria": "DZ",
"AmericanSamoa": "AS",
"Andorra": "AD",
"Angola": "AO",
"Anguilla": "AI",
"Antarctica": "AQ",
"Antigua and Barbuda": "AG",
"Argentina": "AR",
"Armenia": "AM",
"Aruba": "AW",
"Australia": "AU",
"Austria": "AT",
"Azerbaijan": "AZ",
"Bahamas": "BS",
"Bahrain": "BH",
"Bangladesh": "BD",
"Barbados": "BB",
"Belarus": "BY",
"Belgium": "BE",
"Belize": "BZ",
"Benin": "BJ",
"Bermuda": "BM",
"Bhutan": "BT",
"Bolivia, Plurinational State of": "BO",
"Bosnia and Herzegovina": "BA",
"Botswana": "BW",
"Brazil": "BR",
"British Indian Ocean Territory": "IO",
"Brunei Darussalam": "BN",
"Bulgaria": "BG",
"Burkina Faso": "BF",
"Burundi": "BI",
"Cambodia": "KH",
"Cameroon": "CM",
"Canada": "CA",
"Cape Verde": "CV",
"Cayman Islands": "KY",
"Central African Republic": "CF",
"Chad": "TD",
"Chile": "CL",
"China": "CN",
"Christmas Island": "CX",
"Cocos (Keeling) Islands": "CC",
"Colombia": "CO",
"Comoros": "KM",
"Congo": "CG",
"Congo, The Democratic Republic of the Congo": "CD",
"Cook Islands": "CK",
"Costa Rica": "CR",
"Cote d'Ivoire": "CI",
"Croatia": "HR",
"Cuba": "CU",
"Cyprus": "CY",
"Czech Republic": "CZ",
"Denmark": "DK",
"Djibouti": "DJ",
"Dominica": "DM",
"Dominican Republic": "DO",
"Ecuador": "EC",
"Egypt": "EG",
"El Salvador": "SV",
"Equatorial Guinea": "GQ",
"Eritrea": "ER",
"Estonia": "EE",
"Ethiopia": "ET",
"Falkland Islands (Malvinas)": "FK",
"Faroe Islands": "FO",
"Fiji": "FJ",
"Finland": "FI",
"France": "FR",
"French Guiana": "GF",
"French Polynesia": "PF",
"Gabon": "GA",
"Gambia": "GM",
"Georgia": "GE",
"Germany": "DE",
"Ghana": "GH",
"Gibraltar": "GI",
"Greece": "GR",
"Greenland": "GL",
"Grenada": "GD",
"Guadeloupe": "GP",
"Guam": "GU",
"Guatemala": "GT",
"Guernsey": "GG",
"Guinea": "GN",
"Guinea-Bissau": "GW",
"Guyana": "GY",
"Haiti": "HT",
"Holy See (Vatican City State)": "VA",
"Honduras": "HN",
"Hong Kong": "HK",
"Hungary": "HU",
"Iceland": "IS",
"India": "IN",
"Indonesia": "ID",
"Iran, Islamic Republic of Persian Gulf": "IR",
"Iraq": "IQ",
"Ireland": "IE",
"Isle of Man": "IM",
"Israel": "IL",
"Italy": "IT",
"Jamaica": "JM",
"Japan": "JP",
"Jersey": "JE",
"Jordan": "JO",
"Kazakhstan": "KZ",
"Kenya": "KE",
"Kiribati": "KI",
"Korea, Democratic People's Republic of Korea": "KP",
"Korea, Republic of South Korea": "KR",
"Kuwait": "KW",
"Kyrgyzstan": "KG",
"Laos": "LA",
"Latvia": "LV",
"Lebanon": "LB",
"Lesotho": "LS",
"Liberia": "LR",
"Libyan Arab Jamahiriya": "LY",
"Liechtenstein": "LI",
"Lithuania": "LT",
"Luxembourg": "LU",
"Macao": "MO",
"Macedonia": "MK",
"Madagascar": "MG",
"Malawi": "MW",
"Malaysia": "MY",
"Maldives": "MV",
"Mali": "ML",
"Malta": "MT",
"Marshall Islands": "MH",
"Martinique": "MQ",
"Mauritania": "MR",
"Mauritius": "MU",
"Mayotte": "YT",
"Mexico": "MX",
"Micronesia, Federated States of Micronesia": "FM",
"Moldova": "MD",
"Monaco": "MC",
"Mongolia": "MN",
"Montenegro": "ME",
"Montserrat": "MS",
"Morocco": "MA",
"Mozambique": "MZ",
"Myanmar": "MM",
"Namibia": "NA",
"Nauru": "NR",
"Nepal": "NP",
"Netherlands": "NL",
"Netherlands Antilles": "AN",
"New Caledonia": "NC",
"New Zealand": "NZ",
"Nicaragua": "NI",
"Niger": "NE",
"Nigeria": "NG",
"Niue": "NU",
"Norfolk Island": "NF",
"Northern Mariana Islands": "MP",
"Norway": "NO",
"Oman": "OM",
"Pakistan": "PK",
"Palau": "PW",
"Palestinian Territory, Occupied": "PS",
"Panama": "PA",
"Papua New Guinea": "PG",
"Paraguay": "PY",
"Peru": "PE",
"Philippines": "PH",
"Pitcairn": "PN",
"Poland": "PL",
"Portugal": "PT",
"Puerto Rico": "PR",
"Qatar": "QA",
"Romania": "RO",
"Russia": "RU",
"Rwanda": "RW",
"Reunion": "RE",
"Saint Barthelemy": "BL",
"Saint Helena, Ascension and Tristan Da Cunha": "SH",
"Saint Kitts and Nevis": "KN",
"Saint Lucia": "LC",
"Saint Martin": "MF",
"Saint Pierre and Miquelon": "PM",
"Saint Vincent and the Grenadines": "VC",
"Samoa": "WS",
"San Marino": "SM",
"Sao Tome and Principe": "ST",
"Saudi Arabia": "SA",
"Senegal": "SN",
"Serbia": "RS",
"Seychelles": "SC",
"Sierra Leone": "SL",
"Singapore": "SG",
"Slovakia": "SK",
"Slovenia": "SI",
"Solomon Islands": "SB",
"Somalia": "SO",
"South Africa": "ZA",
"South Sudan": "SS",
"South Georgia and the South Sandwich Islands": "GS",
"Spain": "ES",
"Sri Lanka": "LK",
"Sudan": "SD",
"Suriname": "SR",
"Svalbard and Jan Mayen": "SJ",
"Swaziland": "SZ",
"Sweden": "SE",
"Switzerland": "CH",
"Syrian Arab Republic": "SY",
"Taiwan": "TW",
"Tajikistan": "TJ",
"Tanzania, United Republic of Tanzania": "TZ",
"Thailand": "TH",
"Timor-Leste": "TL",
"Togo": "TG",
"Tokelau": "TK",
"Tonga": "TO",
"Trinidad and Tobago": "TT",
"Tunisia": "TN",
"Turkey": "TR",
"Turkmenistan": "TM",
"Turks and Caicos Islands": "TC",
"Tuvalu": "TV",
"Uganda": "UG",
"Ukraine": "UA",
"United Arab Emirates": "AE",
"United Kingdom": "GB",
"United States": "US",
"Uruguay": "UY",
"Uzbekistan": "UZ",
"Vanuatu": "VU",
"Venezuela, Bolivarian Republic of Venezuela": "VE",
"Vietnam": "VN",
"Virgin Islands, British": "VG",
"Virgin Islands, U.S.": "VI",
"Wallis and Futuna": "WF",
"Yemen": "YE",
"Zambia": "ZM",
"Zimbabwe": "ZW"
}
]
}