You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2024/03/19 15:37:44 UTC

(superset) branch master updated: feat(maps): Add Italy regions code to the map generator notebook (#27542)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 86aa8bde8b feat(maps): Add Italy regions code to the map generator notebook (#27542)
86aa8bde8b is described below

commit 86aa8bde8bcbf2461aede3025f8e2f15d8763546
Author: İSKENDER ÜLGEN OĞUL <is...@users.noreply.github.com>
AuthorDate: Tue Mar 19 18:37:37 2024 +0300

    feat(maps): Add Italy regions code to the map generator notebook (#27542)
---
 .../scripts/Country Map GeoJSON Generator.ipynb    | 306 ++++++++-------------
 .../src/countries/france_regions.geojson           |  36 +--
 .../src/countries/italy_regions.geojson            |  40 +--
 3 files changed, 151 insertions(+), 231 deletions(-)

diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb b/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb
index 7006cb441a..28e9142552 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb	
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb	
@@ -40,6 +40,27 @@
     "Download datasets (_Admin 0 - Countries_ in [1:10](https://www.naturalearthdata.com/downloads/10m-cultural-vectors/), and _Admin 1 – States, Provinces_ in 1:10 and [1:50](https://www.naturalearthdata.com/downloads/50m-cultural-vectors/)) from Natural Earch Data:"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Dependencies\n",
+    "\n",
+    "import os\n",
+    "import requests\n",
+    "import geopandas as gpd\n",
+    "import matplotlib.pyplot as plt\n",
+    "import shapely\n",
+    "import pandas as pd\n",
+    "import shapely.geometry\n",
+    "import shapely.ops\n",
+    "import shapely.affinity\n",
+    "from shapely.geometry import Polygon, MultiPolygon\n",
+    "import shutil"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -52,9 +73,6 @@
    },
    "outputs": [],
    "source": [
-    "import os\n",
-    "import requests\n",
-    "\n",
     "data_dir = os.path.expanduser(\"~/Downloads\")\n",
     "if not os.path.exists(data_dir):\n",
     "    os.mkdir(data_dir)\n",
@@ -106,15 +124,14 @@
    },
    "outputs": [],
    "source": [
-    "import os\n",
-    "import geopandas as gpd\n",
-    "import matplotlib.pyplot as plt\n",
-    "import shapely\n",
-    "\n",
+    "# Read Natural Earth data files into GeoDataFrames\n",
     "df_admin0_10m = gpd.read_file(f\"{data_dir}/ne_10m_admin_0_countries.zip\")\n",
     "df_10m = gpd.read_file(f\"{data_dir}/ne_10m_admin_1_states_provinces.zip\")\n",
     "df_50m = gpd.read_file(f\"{data_dir}/ne_50m_admin_1_states_provinces.zip\")\n",
     "\n",
+    "# Convert column names to lowercase\n",
+    "df_admin0_10m.columns = df_admin0_10m.columns.str.lower()\n",
+    "\n",
     "# Download and load the GeoJSON file for India\n",
     "india_geojson_url = \"https://github.com/geohacker/india/raw/bcb920c7d3c686f01d085f7661c9ba89bf9bf65e/state/india_state_kashmir_ladakh.geojson\"\n",
     "\n",
@@ -126,31 +143,6 @@
     "    print(\"Please download the file from the URL and try again.\")"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {
-    "id": "_PKEg8s1t1LT",
-    "outputId": "9937eacd-7a05-491f-f356-790ad75a819f"
-   },
-   "outputs": [],
-   "source": [
-    "df_50m.columns"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {
-    "id": "w8OD4nq2t1LT",
-    "outputId": "b7164440-d6e0-4074-b357-47fd8a8d2884"
-   },
-   "outputs": [],
-   "source": [
-    "df_admin0_10m.columns = df_admin0_10m.columns.str.lower()\n",
-    "df_admin0_10m.columns"
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -178,18 +170,10 @@
    "source": [
     "df_50m[df_50m.adm0_a3 == 'USA'].plot(figsize=(20,10))\n",
     "plt.show()\n",
+    "\n",
     "india_gdf.plot(figsize=(20, 10))"
    ]
   },
-  {
-   "cell_type": "markdown",
-   "metadata": {
-    "id": "VvpqxOjMt1LU"
-   },
-   "source": [
-    "Use 1:50m geometry for some large countries:"
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -199,7 +183,9 @@
    },
    "outputs": [],
    "source": [
-    "df_50m['admin'].unique()"
+    "# Use 1:50m geometry for some large countries:\n",
+    "\n",
+    "print(*df_50m['admin'].unique(), sep='\\n')"
    ]
   },
   {
@@ -210,8 +196,6 @@
    },
    "outputs": [],
    "source": [
-    "import pandas as pd\n",
-    "\n",
     "df = pd.concat([df_10m[~df_10m['admin'].isin(df_50m['admin'].unique())], df_50m])"
    ]
   },
@@ -273,7 +257,7 @@
     "  'indonesia',\n",
     "  'iran',\n",
     "  'italy',\n",
-    "  'italy_regions', # this one is custom - see below\n",
+    "  'italy_regions', # this one is derived from italy - see below\n",
     "  'japan',\n",
     "  'jordan',\n",
     "  'kazakhstan',\n",
@@ -345,7 +329,7 @@
     "\n",
     "# CSV files that exist specifically on the repo, rather than in the dataset\n",
     "custom_countries = [\n",
-    "    'italy_regions',\n",
+    "    \n",
     "]\n",
     "\n",
     "# Make sure all country names are covered:\n",
@@ -373,8 +357,6 @@
    },
    "outputs": [],
    "source": [
-    "import geopandas as gpd\n",
-    "\n",
     "alt_maps = dict()\n",
     "\n",
     "def get_gdf(country):\n",
@@ -393,9 +375,13 @@
     "    for i, country in enumerate(countries):\n",
     "        # create subplot axes in a 3x3 grid\n",
     "        ax = plt.subplot(len(countries) // 5, 6, i + 1) # nrows, ncols, axes position\n",
-    "        get_gdf(country).plot(ax=ax)\n",
+    "        gdf = get_gdf(country)\n",
+    "        if not gdf.empty:  # check if GeoDataFrame is not empty\n",
+    "            gdf.plot(ax=ax)\n",
+    "            ax.set_aspect('equal', adjustable='datalim')\n",
+    "        else:  # if GeoDataFrame is empty\n",
+    "            ax.text(0.5, 0.5, country, ha='center', va='center')  # add country name to the center of the subplot\n",
     "        ax.set_title(country)\n",
-    "        ax.set_aspect('equal', adjustable='datalim')\n",
     "\n",
     "    plt.tight_layout()\n",
     "    plt.show()\n",
@@ -411,7 +397,7 @@
    "source": [
     "### Handle countries with flying islands\n",
     "\n",
-    "#### USA"
+    "- For countries with flying islands, we need to move the islands closer to the mainland."
    ]
   },
   {
@@ -420,7 +406,7 @@
     "id": "Z4y46Zuot1LU"
    },
    "source": [
-    "For countries with flying islands, we need to move the islands closer to the mainland."
+    "#### USA"
    ]
   },
   {
@@ -513,14 +499,15 @@
    },
    "outputs": [],
    "source": [
-    "import pandas as pd\n",
-    "\n",
     "china = df[df.admin == \"China\"]\n",
     "china_copy = pd.concat([china, china_sars], ignore_index=True)\n",
+    "\n",
     "# Combine the 'name_zh' columns\n",
     "china_copy[\"name_zh\"] = china_copy[\"name_zh\"].combine_first(china_copy[\"name_zh_y\"])\n",
+    "\n",
     "# Drop the extra 'name_zh_x' and 'name_zh_y' columns, if they exist\n",
     "china_copy = china_copy.drop([\"name_zh_x\", \"name_zh_y\"], axis=1)\n",
+    "\n",
     "# Plotting the DataFrame\n",
     "china_copy.plot(figsize=(12, 12))"
    ]
@@ -542,7 +529,7 @@
    "source": [
     "#### Finland\n",
     "\n",
-    "The Åland Islands (ISO country code AX) is an autonomous region of Finland, and carries the ISO-3166 code FI-01."
+    "- The Åland Islands (ISO country code AX) is an autonomous region of Finland, and carries the ISO-3166 code FI-01."
    ]
   },
   {
@@ -575,17 +562,19 @@
    },
    "outputs": [],
    "source": [
-    "import pandas as pd\n",
-    "\n",
     "finland = df[df.admin == \"Finland\"]\n",
+    "\n",
     "# Concatenate the 'finland' DataFrame with 'finland_aland' DataFrame\n",
     "finland_copy = pd.concat([finland, finland_aland], ignore_index=True)\n",
+    "\n",
     "# Combine 'name_fi' columns. However, since both columns are named 'name_fi', this might be redundant\n",
     "# If you have two different columns for 'name_fi' values in each DataFrame, specify them as 'name_fi_x' and 'name_fi_y'\n",
     "finland_copy[\"name_fi\"] = finland_copy[\"name_fi\"].combine_first(finland_copy[\"name_fi\"])\n",
+    "\n",
     "# Drop the 'name_fi' column, if that's intended. This will remove the 'name_fi' data entirely.\n",
     "# If you meant to drop other columns (like 'name_fi_x' and 'name_fi_y'), update the column names accordingly\n",
     "finland_copy = finland_copy.drop([\"name_fi\"], axis=1)\n",
+    "\n",
     "# Plotting the DataFrame\n",
     "finland_copy.plot(figsize=(12, 12))\n"
    ]
@@ -598,7 +587,7 @@
    "source": [
     "#### Norway\n",
     "\n",
-    "Remove NO-X01~ (The uninhabited Bouvet Island) and move Svalbard closer to mainland"
+    "- Remove NO-X01~ (The uninhabited Bouvet Island) and move Svalbard closer to mainland"
    ]
   },
   {
@@ -624,6 +613,7 @@
    "outputs": [],
    "source": [
     "norway_copy = norway.copy()\n",
+    "\n",
     "norway_copy = norway_copy[norway_copy[\"iso_3166_2\"] != \"NO-X01~\"]\n",
     "reposition(norway_copy, norway.name == 'Svalbard', -12, -8, 0.5, 0.5)\n",
     "#reposition(norway_copy, norway.name == 'Nordland', 10, 0, 2, 2)\n",
@@ -663,8 +653,10 @@
    "outputs": [],
    "source": [
     "portugal_copy = portugal.copy()\n",
+    "\n",
     "reposition(portugal_copy, portugal.name == 'Azores', 11, 0)\n",
     "reposition(portugal_copy, portugal.name == 'Madeira', 6, 2, simplify=0.015)\n",
+    "\n",
     "portugal_copy.plot(figsize=(8, 8))"
    ]
   },
@@ -700,7 +692,9 @@
    "outputs": [],
    "source": [
     "spain_copy = spain.copy()\n",
+    "\n",
     "reposition(spain_copy, spain.name.isin(['Las Palmas', 'Santa Cruz de Tenerife']), 3, 7, 1, 1)\n",
+    "\n",
     "spain_copy.plot(figsize=(8, 8))"
    ]
   },
@@ -732,7 +726,7 @@
     "id": "IOuQ_OzMt1LW"
    },
    "source": [
-    "Russia looks off because of Chukchi runs across E180. We need to move the parts on the other side of the map to the right."
+    "- Russia looks off because of Chukchi runs across E180. We need to move the parts on the other side of the map to the right."
    ]
   },
   {
@@ -745,10 +739,6 @@
    },
    "outputs": [],
    "source": [
-    "import shapely.geometry\n",
-    "import shapely.ops\n",
-    "import shapely.affinity\n",
-    "\n",
     "def shift_geom(geom, cutoff=0):\n",
     "    border = shapely.geometry.LineString([(cutoff, -90), (cutoff, 90)])\n",
     "    splitted_geom = shapely.ops.split(geom, border)\n",
@@ -815,8 +805,6 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "from shapely.geometry import Polygon, MultiPolygon\n",
-    "\n",
     "# NUTS - 1 Codes for Turkey and correspong region - city names\n",
     "\n",
     "region_dict = {\n",
@@ -896,7 +884,7 @@
     "id": "aYFQYe8-t1LW"
    },
    "source": [
-    "#### France"
+    "### France"
    ]
   },
   {
@@ -978,123 +966,63 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "france_regions = france_copy.copy()\n",
-    "# Define the mapping from the departments to their parent division\n",
-    "# i.e. from departments to regions\n",
-    "# Source: https://www.iso.org/obp/ui/#iso:code:3166:FR\n",
-    "dep_to_reg = {\n",
-    "    \"FR-01\": \"FR-ARA\",\n",
-    "    \"FR-02\": \"FR-HDF\",\n",
-    "    \"FR-03\": \"FR-ARA\",\n",
-    "    \"FR-04\": \"FR-PAC\",\n",
-    "    \"FR-05\": \"FR-PAC\",\n",
-    "    \"FR-06\": \"FR-PAC\",\n",
-    "    \"FR-07\": \"FR-ARA\",\n",
-    "    \"FR-08\": \"FR-GES\",\n",
-    "    \"FR-09\": \"FR-OCC\",\n",
-    "    \"FR-10\": \"FR-GES\",\n",
-    "    \"FR-11\": \"FR-OCC\",\n",
-    "    \"FR-12\": \"FR-OCC\",\n",
-    "    \"FR-13\": \"FR-PAC\",\n",
-    "    \"FR-14\": \"FR-NOR\",\n",
-    "    \"FR-15\": \"FR-ARA\",\n",
-    "    \"FR-16\": \"FR-NAQ\",\n",
-    "    \"FR-17\": \"FR-NAQ\",\n",
-    "    \"FR-18\": \"FR-CVL\",\n",
-    "    \"FR-19\": \"FR-NAQ\",\n",
-    "    \"FR-21\": \"FR-BFC\",\n",
-    "    \"FR-22\": \"FR-BRE\",\n",
-    "    \"FR-23\": \"FR-NAQ\",\n",
-    "    \"FR-24\": \"FR-NAQ\",\n",
-    "    \"FR-25\": \"FR-BFC\",\n",
-    "    \"FR-26\": \"FR-ARA\",\n",
-    "    \"FR-27\": \"FR-NOR\",\n",
-    "    \"FR-28\": \"FR-CVL\",\n",
-    "    \"FR-29\": \"FR-BRE\",\n",
-    "    \"FR-2A\": \"FR-20R\",\n",
-    "    \"FR-2B\": \"FR-20R\",\n",
-    "    \"FR-30\": \"FR-OCC\",\n",
-    "    \"FR-31\": \"FR-OCC\",\n",
-    "    \"FR-32\": \"FR-OCC\",\n",
-    "    \"FR-33\": \"FR-NAQ\",\n",
-    "    \"FR-34\": \"FR-OCC\",\n",
-    "    \"FR-35\": \"FR-BRE\",\n",
-    "    \"FR-36\": \"FR-CVL\",\n",
-    "    \"FR-37\": \"FR-CVL\",\n",
-    "    \"FR-38\": \"FR-ARA\",\n",
-    "    \"FR-39\": \"FR-BFC\",\n",
-    "    \"FR-40\": \"FR-NAQ\",\n",
-    "    \"FR-41\": \"FR-CVL\",\n",
-    "    \"FR-42\": \"FR-ARA\",\n",
-    "    \"FR-43\": \"FR-ARA\",\n",
-    "    \"FR-44\": \"FR-PDL\",\n",
-    "    \"FR-45\": \"FR-CVL\",\n",
-    "    \"FR-46\": \"FR-OCC\",\n",
-    "    \"FR-47\": \"FR-NAQ\",\n",
-    "    \"FR-48\": \"FR-OCC\",\n",
-    "    \"FR-49\": \"FR-PDL\",\n",
-    "    \"FR-50\": \"FR-NOR\",\n",
-    "    \"FR-51\": \"FR-GES\",\n",
-    "    \"FR-52\": \"FR-GES\",\n",
-    "    \"FR-53\": \"FR-PDL\",\n",
-    "    \"FR-54\": \"FR-GES\",\n",
-    "    \"FR-55\": \"FR-GES\",\n",
-    "    \"FR-56\": \"FR-BRE\",\n",
-    "    \"FR-57\": \"FR-GES\",\n",
-    "    \"FR-58\": \"FR-BFC\",\n",
-    "    \"FR-59\": \"FR-HDF\",\n",
-    "    \"FR-60\": \"FR-HDF\",\n",
-    "    \"FR-61\": \"FR-NOR\",\n",
-    "    \"FR-62\": \"FR-HDF\",\n",
-    "    \"FR-63\": \"FR-ARA\",\n",
-    "    \"FR-64\": \"FR-NAQ\",\n",
-    "    \"FR-65\": \"FR-OCC\",\n",
-    "    \"FR-66\": \"FR-OCC\",\n",
-    "    \"FR-67\": \"FR-GES\",\n",
-    "    \"FR-68\": \"FR-GES\",\n",
-    "    \"FR-69\": \"FR-ARA\",\n",
-    "    \"FR-70\": \"FR-BFC\",\n",
-    "    \"FR-71\": \"FR-BFC\",\n",
-    "    \"FR-72\": \"FR-PDL\",\n",
-    "    \"FR-73\": \"FR-ARA\",\n",
-    "    \"FR-74\": \"FR-ARA\",\n",
-    "    \"FR-75\": \"FR-IDF\",\n",
-    "    \"FR-76\": \"FR-NOR\",\n",
-    "    \"FR-77\": \"FR-IDF\",\n",
-    "    \"FR-78\": \"FR-IDF\",\n",
-    "    \"FR-79\": \"FR-NAQ\",\n",
-    "    \"FR-80\": \"FR-HDF\",\n",
-    "    \"FR-81\": \"FR-OCC\",\n",
-    "    \"FR-82\": \"FR-OCC\",\n",
-    "    \"FR-83\": \"FR-PAC\",\n",
-    "    \"FR-84\": \"FR-PAC\",\n",
-    "    \"FR-85\": \"FR-PDL\",\n",
-    "    \"FR-86\": \"FR-NAQ\",\n",
-    "    \"FR-87\": \"FR-NAQ\",\n",
-    "    \"FR-88\": \"FR-GES\",\n",
-    "    \"FR-89\": \"FR-BFC\",\n",
-    "    \"FR-90\": \"FR-BFC\",\n",
-    "    \"FR-91\": \"FR-IDF\",\n",
-    "    \"FR-92\": \"FR-IDF\",\n",
-    "    \"FR-93\": \"FR-IDF\",\n",
-    "    \"FR-94\": \"FR-IDF\",\n",
-    "    \"FR-95\": \"FR-IDF\",\n",
-    "    \"FR-GF\": \"FR-GF\",\n",
-    "    \"FR-MQ\": \"FR-MQ\",\n",
-    "    \"FR-GP\": \"FR-GP\",\n",
-    "    \"FR-RE\": \"FR-RE\",\n",
-    "    \"FR-YT\": \"FR-YT\",\n",
-    "}\n",
-    "# Apply the mapping departments => regions\n",
-    "france_regions[\"iso_3166_2_region\"] = france_regions['iso_3166_2'].apply(lambda x: dep_to_reg[x])\n",
-    "# Merge the departments together \n",
-    "# https://geopandas.org/en/stable/docs/user_guide/aggregation_with_dissolve.html\n",
-    "france_regions = france_regions.dissolve(by='iso_3166_2_region')\n",
-    "# Fix the label\n",
-    "france_regions['iso_3166_2'] = france_regions['iso_3166_2'].index\n",
-    "# Fix the name\n",
-    "france_regions['name'] = france_regions['region']\n",
-    "france_regions.plot()"
+    "france_regions = france_copy[['geometry','region_cod','region']]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "france_regions = france_regions.dissolve(by=['region_cod', 'region']).reset_index()\n",
+    "\n",
+    "france_regions = france_regions.rename(columns={'region': 'name', 'region_cod': 'iso_3166_2'})"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "france_regions.plot(figsize=(10, 7), edgecolor='black', column='iso_3166_2', legend=False, cmap='tab20')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Italy"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Italy Regions"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "italy_regions = df[df.admin == 'Italy'][['geometry','region_cod','region']]\n",
+    "\n",
+    "italy_regions = italy_regions.dissolve(by=['region_cod', 'region']).reset_index()\n",
+    "\n",
+    "italy_regions = italy_regions.rename(columns={'region': 'name', 'region_cod': 'iso_3166_2'})"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "italy_regions.plot(figsize=(10, 7), edgecolor='black', column='iso_3166_2', legend=False, cmap='tab20')"
    ]
   },
   {
@@ -1205,6 +1133,7 @@
     "    \"france\": france_copy,\n",
     "    \"france_regions\": france_regions,\n",
     "    \"turkey_regions\": turkey_regions,\n",
+    "    \"italy_regions\": italy_regions,\n",
     "    \"netherlands\": netherlands_copy,\n",
     "    \"norway\": norway_copy,\n",
     "    \"uk\": uk_copy,\n",
@@ -1236,8 +1165,6 @@
    },
    "outputs": [],
    "source": [
-    "import shutil\n",
-    "\n",
     "simplify_factors = {\n",
     "    \"uk\": 0.005,\n",
     "}\n",
@@ -1368,13 +1295,6 @@
     "\n",
     "print(\"TypeScript code written to src/countries.ts\")"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/france_regions.geojson b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/france_regions.geojson
index 0e6ffb9cb5..64f529a510 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/france_regions.geojson
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/france_regions.geojson
@@ -2,23 +2,23 @@
 "type": "FeatureCollection",
 "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
 "features": [
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-20R", "ISO": "FR-20R", "NAME_1": "Corse" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 9.39429772200009, 41.84796784100007 ], [ 9.401621941000087, 41.706447658000059 ], [ 9.372243686000047, 41.68390534100007 ], [ 9.377940300000091, 41.656439520000049 ], [ 9.345225457000083, 41.640326239000046 ], [ 9.346690300000091, 41.619574286000045 ], [ 9.292165561000047, 41.62641022300005 ], [ 9.278575066000087, 41.598374 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-ARA", "ISO": "FR-ARA", "NAME_1": "Auvergne-Rhône-Alpes" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 4.657836633653687, 44.28171898943981 ], [ 4.520837117438987, 44.336826413708025 ], [ 4.455666216522673, 44.331816647620144 ], [ 4.445075395413141, 44.301120845450612 ], [ 4.418114945348464, 44.290475093750558 ], [ 4.395636916910178, 44.301120845450612 ], [ 4.38643037366279, 44.338891843483793 ], [ 4.34224336034282,  [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-BFC", "ISO": "FR-BFC", "NAME_1": "Bourgogne-Franche-Comté" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 6.926067749000111, 47.424858297000029 ], [ 6.924517456000103, 47.4059964 ], [ 6.866639852000077, 47.354164937000021 ], [ 7.003995809000088, 47.368143413000027 ], [ 7.044303426000056, 47.34049652100002 ], [ 7.036551961000043, 47.329515279000034 ], [ 6.958623901000067, 47.290551250000036 ], [ 6.956246785000104, 47. [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-BRE", "ISO": "FR-BRE", "NAME_1": "Bretagne" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -3.072743292999917, 47.328314520000049 ], [ -3.067005988999938, 47.301947333000044 ], [ -3.093617316999939, 47.296616929000038 ], [ -3.223459438999953, 47.312160549000055 ], [ -3.240956183999913, 47.32062409100007 ], [ -3.262074347999942, 47.383246161000045 ], [ -3.242990688999953, 47.395331122000073 ], [ -3.114654100999 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-CVL", "ISO": "FR-CVL", "NAME_1": "Centre-Val de Loire" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.881764789213662, 47.51456701305716 ], [ 2.932148091860938, 47.440178582775332 ], [ 2.875041155424981, 47.337115834727967 ], [ 2.97686244874302, 47.260453233929582 ], [ 3.033485986089374, 47.122190288950662 ], [ 3.031618310036947, 47.075838968993196 ], [ 3.068422510790242, 47.045505715916022 ], [ 3.075563624261861,  [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-GES", "ISO": "FR-GES", "NAME_1": "Grand Est" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 7.575743856000145, 48.053708802000088 ], [ 7.618945353000072, 48.00265248700002 ], [ 7.621115763000063, 47.971439922000044 ], [ 7.584942261000037, 47.940408224000109 ], [ 7.55900069100008, 47.882711488000027 ], [ 7.561997925000099, 47.839225769000038 ], [ 7.542877645000118, 47.829433086000066 ], [ 7.525927775000099, 47.7831568 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-GF", "ISO": "FR-GF", "NAME_1": "Guyane française" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -1.509820884949931, 41.347610069625041 ], [ -1.442682864349889, 41.448398491275057 ], [ -1.431993594149891, 41.516865888175076 ], [ -1.453444481299911, 41.525104403425068 ], [ -1.479833051549902, 41.579075269325074 ], [ -1.559758405099917, 41.667618960225049 ], [ -1.553048220499915, 41.699117037675066 ], [ -1.579599571549 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-GP", "ISO": "FR-GP", "NAME_1": "Guadeloupe" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -4.327345343499964, 41.100059312750027 ], [ -4.344557258499954, 41.080467026750078 ], [ -4.360731573999949, 41.089805405750035 ], [ -4.340223761499949, 41.116843979750051 ], [ -4.327345343499964, 41.100059312750027 ] ] ], [ [ [ -4.259047004499912, 41.11440257375002 ], [ -4.292189093499964, 41.097556870250024 ], [ -4.2967 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-HDF", "ISO": "FR-HDF", "NAME_1": "Hauts-de-France" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 3.045285302674586, 49.092302669332696 ], [ 2.859396623755174, 49.075043146823759 ], [ 2.794709121928406, 49.086666682821146 ], [ 2.745797986987498, 49.067858087980369 ], [ 2.626486459082798, 49.097828792864448 ], [ 2.583332160650684, 49.084546321555479 ], [ 2.535695439692802, 49.117823910045388 ], [ 2.509196415582096, 49 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-IDF", "ISO": "FR-IDF", "NAME_1": "Île-de-France" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.626486459082798, 49.097828792864448 ], [ 2.745797986987498, 49.067858087980369 ], [ 2.794709121928406, 49.086666682821146 ], [ 2.98661830868798, 49.0788663896721 ], [ 3.07973842918517, 49.106200374947321 ], [ 3.140866361293547, 49.093148616615338 ], [ 3.174089019192877, 49.055663263948475 ], [ 3.175956694345984, 49.00434 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-MQ", "ISO": "FR-MQ", "NAME_1": "Martinique" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -2.305810106749938, 41.471720688000097 ], [ -2.324181688249929, 41.46378611850006 ], [ -2.357995165249896, 41.399943345000089 ], [ -2.396081102749896, 41.390910142500054 ], [ -2.42037309424996, 41.420451157500089 ], [ -2.379967820749904, 41.448832504500054 ], [ -2.392968310249934, 41.492716782000066 ], [ -2.437340867749931, 41. [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-NAQ", "ISO": "FR-NAQ", "NAME_1": "Nouvelle-Aquitaine" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -1.755779581999889, 43.318545634000102 ], [ -1.796914021999953, 43.341128235000056 ], [ -1.794074744885912, 43.386015332062847 ], [ -1.775502081999946, 43.376166083000044 ], [ -1.661000128999945, 43.399684963000084 ], [ -1.596750454999949, 43.442531643000052 ], [ -1.47687740799995, 43.580064195000034 ], [ -1.34 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-NOR", "ISO": "FR-NOR", "NAME_1": "Normandie" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 0.411306186000047, 49.452053127000056 ], [ 0.493174675000091, 49.49359772300005 ], [ 0.422129754000082, 49.464422919000071 ], [ 0.256846550000091, 49.464056708000044 ], [ 0.104421420000051, 49.49359772300005 ], [ 0.076589389000048, 49.534979559000078 ], [ 0.130869988000086, 49.603501695000034 ], [ 0.170909050000091, 49.6916364 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-OCC", "ISO": "FR-OCC", "NAME_1": "Occitanie" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 0.885764608000045, 42.804235942000091 ], [ 0.812900838000132, 42.831624451000025 ], [ 0.679368937000049, 42.845112 ], [ 0.656321248000097, 42.838419902000069 ], [ 0.639681437000149, 42.774677023000052 ], [ 0.650740194000065, 42.76338572300007 ], [ 0.633480265000088, 42.744782206000124 ], [ 0.666449829000044, 42.71475820 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-PAC", "ISO": "FR-PAC", "NAME_1": "Provence-Alpes-Côte-d'Azur" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 6.252208826000071, 43.002632198000072 ], [ 6.20248457100007, 42.987127997000073 ], [ 6.164724155000044, 43.005072333000044 ], [ 6.241884786000071, 43.025649718000068 ], [ 6.252208826000071, 43.002632198000072 ] ] ], [ [ [ 6.898241732000088, 43.437998781000033 ], [ 6.871072493000042, 43.426092930000038 ] [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-PDL", "ISO": "FR-PDL", "NAME_1": "Pays de la Loire" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -1.177235480999911, 46.326157945000034 ], [ -1.214344855999911, 46.310695705000057 ], [ -1.21320553299995, 46.279120184000078 ], [ -1.240101691999939, 46.284247137000079 ], [ -1.277414516999954, 46.319525458000044 ], [ -1.370228644999941, 46.354193427000041 ], [ -1.448719855999911, 46.343410549000055 ], [ -1.4814 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-RE", "ISO": "FR-RE", "NAME_1": "Réunion" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 0.911794467500101, 41.702879136000078 ], [ 0.986379428000049, 41.668821519000076 ], [ 1.011770052500026, 41.622556870500105 ], [ 0.948049350500099, 41.344236558000105 ], [ 0.836965365500049, 41.330564683500043 ], [ 0.754689975500099, 41.301878160000072 ], [ 0.592580600000076, 41.306150620500105 ], [ 0.381521030000101, 41.390623276 [...]
-{ "type": "Feature", "properties": { "iso_3166_2_region": "FR-YT", "ISO": "FR-YT", "NAME_1": "Mayotte" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 2.243093295250063, 41.60801015900006 ], [ 2.247487825750071, 41.542824611000071 ], [ 2.198903842750028, 41.483498439500067 ], [ 2.209401888250071, 41.448342189500067 ], [ 2.236379428750084, 41.431374416000097 ], [ 2.23308352975009, 41.41111074500003 ], [ 2.168996616250084, 41.292702540500073 ], [ 2.196218295250063, 41.25583 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-ARA", "NAME_1": "Auvergne-Rhône-Alpes" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 5.812038338598427, 44.712053478285384 ], [ 5.829550545421341, 44.68342310679094 ], [ 5.793053962270506, 44.654902597376918 ], [ 5.657922121208912, 44.64141138622648 ], [ 5.608110107495463, 44.555838872765719 ], [ 5.658229738811372, 44.513717289221518 ], [ 5.651264405927577, 44.495941410167916 ], [ 5.595563720489281, 44.47063989541482 ], [ 5.47236 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-BFC", "NAME_1": "Bourgogne-Franche-Comté" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 6.939169949951677, 47.426844260931965 ], [ 6.866639852000077, 47.354164937000021 ], [ 7.003995809000088, 47.368143413000027 ], [ 7.044303426000056, 47.34049652100002 ], [ 7.036551961000043, 47.329515279000034 ], [ 6.958623901000067, 47.290551250000036 ], [ 6.956246785000104, 47.245231018000126 ], [ 6.689699747000105, 47.078290304000078 ], [ 6. [...]
+{ "type": "Feature", "properties": { "ISO": "FR-BRE", "NAME_1": "Bretagne" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -3.114654100999928, 47.33148834800005 ], [ -3.072743292999917, 47.328314520000049 ], [ -3.067005988999938, 47.301947333000044 ], [ -3.223459438999953, 47.312160549000055 ], [ -3.240956183999913, 47.32062409100007 ], [ -3.262074347999942, 47.383246161000045 ], [ -3.242990688999953, 47.395331122000073 ], [ -3.114654100999928, 47.33148834800005 ] ] ], [  [...]
+{ "type": "Feature", "properties": { "ISO": "FR-COR", "NAME_1": "Corse" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 9.395832225648281, 41.860441163183417 ], [ 9.401621941000087, 41.706447658000059 ], [ 9.372243686000047, 41.68390534100007 ], [ 9.377940300000091, 41.656439520000049 ], [ 9.345225457000083, 41.640326239000046 ], [ 9.346690300000091, 41.619574286000045 ], [ 9.292165561000047, 41.62641022300005 ], [ 9.278575066000087, 41.598374742000033 ], [ 9.345062696000 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-CVL", "NAME_1": "Centre-Val de Loire" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.874716754674466, 47.520525423609399 ], [ 2.932148091860938, 47.440178582775332 ], [ 2.875041155424981, 47.337115834727967 ], [ 2.97686244874302, 47.260453233929582 ], [ 3.033485986089374, 47.122190288950662 ], [ 3.031618310036947, 47.075838968993196 ], [ 3.068422510790242, 47.045505715916022 ], [ 3.075563624261861, 46.97395175806713 ], [ 3.05416 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-GES", "NAME_1": "Grand Est" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 7.581976474333016, 48.121353059320732 ], [ 7.575743856000145, 48.053708802000088 ], [ 7.618945353000072, 48.00265248700002 ], [ 7.621115763000063, 47.971439922000044 ], [ 7.584942261000037, 47.940408224000109 ], [ 7.55900069100008, 47.882711488000027 ], [ 7.561997925000099, 47.839225769000038 ], [ 7.542877645000118, 47.829433086000066 ], [ 7.525927775000099 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-GUA", "NAME_1": "Guadeloupe" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -4.340223761499949, 41.116843979750051 ], [ -4.327345343499964, 41.100059312750027 ], [ -4.344557258499954, 41.080467026750078 ], [ -4.360731573999949, 41.089805405750035 ], [ -4.340223761499949, 41.116843979750051 ] ] ], [ [ [ -4.252943487999978, 41.127525131750041 ], [ -4.276503059499937, 41.10268382375002 ], [ -4.296766730499918, 41.1042707382500 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-GUF", "NAME_1": "Guyane française" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -1.509820884949931, 41.347610069625041 ], [ -1.442682864349889, 41.448398491275057 ], [ -1.431993594149891, 41.516865888175076 ], [ -1.453444481299911, 41.525104403425068 ], [ -1.479833051549902, 41.579075269325074 ], [ -1.559758405099917, 41.667618960225049 ], [ -1.553048220499915, 41.699117037675066 ], [ -1.579599571549885, 41.72602108022506 ], [ - [...]
+{ "type": "Feature", "properties": { "ISO": "FR-HDF", "NAME_1": "Hauts-de-France" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 3.07973842918517, 49.106200374947321 ], [ 2.98661830868798, 49.0788663896721 ], [ 2.794709121928406, 49.086666682821146 ], [ 2.745797986987498, 49.067858087980369 ], [ 2.626486459082798, 49.097828792864448 ], [ 2.583332160650684, 49.084546321555479 ], [ 2.535695439692802, 49.117823910045388 ], [ 2.509196415582096, 49.112561458744324 ], [ 2.31873742339 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-IDF\t", "NAME_1": "Île-de-France" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.583332160650684, 49.084546321555479 ], [ 2.626486459082798, 49.097828792864448 ], [ 2.755729627520282, 49.06780315649047 ], [ 2.794709121928406, 49.086666682821146 ], [ 2.98661830868798, 49.0788663896721 ], [ 3.07973842918517, 49.106200374947321 ], [ 3.140866361293547, 49.093148616615338 ], [ 3.174089019192877, 49.055663263948475 ], [ 3.175956694345 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-LRE", "NAME_1": "Réunion" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 0.911794467500101, 41.702879136000078 ], [ 0.986379428000049, 41.668821519000076 ], [ 1.011770052500026, 41.622556870500105 ], [ 0.948049350500099, 41.344236558000105 ], [ 0.836965365500049, 41.330564683500043 ], [ 0.754689975500099, 41.301878160000072 ], [ 0.592580600000076, 41.306150620500105 ], [ 0.381521030000101, 41.390623276500051 ], [ 0.32671145900008, [...]
+{ "type": "Feature", "properties": { "ISO": "FR-MAY", "NAME_1": "Mayotte" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 2.217702670750086, 41.624733791000097 ], [ 2.243093295250063, 41.60801015900006 ], [ 2.254079623750059, 41.569802150000015 ], [ 2.198903842750028, 41.483498439500067 ], [ 2.209401888250071, 41.448342189500067 ], [ 2.236379428750084, 41.431374416000097 ], [ 2.168996616250084, 41.292702540500073 ], [ 2.196218295250063, 41.25583730750003 ], [ 2.1654565757 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-MTQ", "NAME_1": "Martinique" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -2.305810106749938, 41.471720688000097 ], [ -2.324181688249929, 41.46378611850006 ], [ -2.357995165249896, 41.399943345000089 ], [ -2.396081102749896, 41.390910142500054 ], [ -2.42037309424996, 41.420451157500089 ], [ -2.379967820749904, 41.448832504500054 ], [ -2.392968310249934, 41.492716782000066 ], [ -2.437340867749931, 41.470072740000042 ], [ -2.46138 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-NAQ", "NAME_1": "Nouvelle-Aquitaine" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -1.747356322999906, 43.291002096000042 ], [ -1.755779581999889, 43.318545634000102 ], [ -1.796914021999953, 43.341128235000056 ], [ -1.794074744885912, 43.386015332062847 ], [ -1.775502081999946, 43.376166083000044 ], [ -1.661000128999945, 43.399684963000084 ], [ -1.596750454999949, 43.442531643000052 ], [ -1.47687740799995, 43.5800641950000 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-NOR", "NAME_1": "Normandie" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -1.118763772743309, 49.34620165683242 ], [ -1.103423631999931, 49.349025783000059 ], [ -1.106353318999936, 49.379461981000077 ], [ -1.072255011999914, 49.39679596600007 ], [ -0.940419074999909, 49.392279364000046 ], [ -0.822132941999939, 49.362697658000059 ], [ -0.411122199999909, 49.342759507000039 ], [ -0.219471808999913, 49.280096747000073 ], [ -0.033843 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-OCC", "NAME_1": "Occitanie" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 1.717091134804584, 42.539890071086553 ], [ 1.765090780000151, 42.563372091000033 ], [ 1.713310995000086, 42.589546204000058 ], [ 1.721992635000049, 42.609855042000063 ], [ 1.608304484000143, 42.618123271000016 ], [ 1.543088827000133, 42.649361674000019 ], [ 1.466814412000105, 42.641455180000051 ], [ 1.451414835826029, 42.602051901673917 ], [ 1.429297 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-PAC", "NAME_1": "Provence-Alpes-Côte-d'Azur" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 6.235036655000044, 43.022406317000048 ], [ 6.252208826000071, 43.002632198000072 ], [ 6.20248457100007, 42.987127997000073 ], [ 6.166188998000052, 42.999660549000055 ], [ 6.235036655000044, 43.022406317000048 ] ] ], [ [ [ 6.933184539115985, 43.480345841348736 ], [ 6.894027990000041, 43.427628415000072 ], [ 6.857987506000086, 43.43617 [...]
+{ "type": "Feature", "properties": { "ISO": "FR-PDL", "NAME_1": "Pays de la Loire" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -1.119189720473402, 46.311010963543303 ], [ -1.177235480999911, 46.326157945000034 ], [ -1.214344855999911, 46.310695705000057 ], [ -1.21320553299995, 46.279120184000078 ], [ -1.240101691999939, 46.284247137000079 ], [ -1.277414516999954, 46.319525458000044 ], [ -1.370228644999941, 46.354193427000041 ], [ -1.448719855999911, 46.343410549000055 [...]
 ]
 }
diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/italy_regions.geojson b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/italy_regions.geojson
index 871098b36f..e5c67a5781 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/italy_regions.geojson
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/src/countries/italy_regions.geojson
@@ -2,25 +2,25 @@
 "type": "FeatureCollection",
 "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
 "features": [
-{ "type": "Feature", "properties": { "NAME_1": "Marche", "ISO": "IT-57" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.916724724800755, 42.894584737494966 ], [ 13.816123316587612, 42.877523900747057 ], [ 13.774078751107728, 42.859485469040976 ], [ 13.72485564570424, 42.855721080540967 ], [ 13.699303310176438, 42.822615601908971 ], [ 13.663599836744181, 42.807127380591886 ], [ 13.635516366621307, 42.803302389555917 ], [ 13.624398869633838, 42.816541735840168 ], [ 13.571461264 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Abruzzo", "ISO": "IT-65" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 14.233094736844542, 42.465408449024338 ], [ 14.259919074419273, 42.440958540248019 ], [ 14.320923772076622, 42.404985670789472 ], [ 14.409916365403955, 42.358090012693381 ], [ 14.410145351013178, 42.34787727634469 ], [ 14.441202555547132, 42.312316019711155 ], [ 14.502406052834061, 42.271809117925812 ], [ 14.50826546902605, 42.252503041083983 ], [ 14.563059109 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Molise", "ISO": "IT-67" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 15.13804572601151, 41.926645131283351 ], [ 15.131434658668908, 41.903020468357226 ], [ 15.138799094149407, 41.879280886008274 ], [ 15.103662499331355, 41.846740100367967 ], [ 15.100268188895479, 41.833788284985346 ], [ 15.11644311204285, 41.814535319156661 ], [ 15.115135695304557, 41.789559297141047 ], [ 15.097373450288227, 41.765933609661168 ], [ 15.1028432554 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Lazio", "ISO": "IT-62" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 12.243624215182994, 41.737867752004576 ], [ 12.21984172576858, 41.770544517463918 ], [ 12.224221068356169, 41.781894623661735 ], [ 12.203510232991254, 41.829742950622609 ], [ 12.177670531091044, 41.873527292519725 ], [ 12.140738377440915, 41.916242170859483 ], [ 12.049786154042998, 41.956510706301302 ], [ 12.023977794115932, 41.9838407723609 ], [ 11.979957764680 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Campania", "ISO": "IT-72" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 14.159209066658033, 40.808043221787997 ], [ 14.156050422033594, 40.818097532129826 ], [ 14.120786624483953, 40.820572632156797 ], [ 14.107691054054898, 40.831580419992939 ], [ 14.077525100805707, 40.825469836316174 ], [ 14.084763956023316, 40.79340204503562 ], [ 14.041708252606711, 40.791138894051699 ], [ 14.048001810932179, 40.835638021273418 ], [ 14. [...]
-{ "type": "Feature", "properties": { "NAME_1": "Basilicata", "ISO": "IT-77" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.866520499668283, 40.398077514192892 ], [ 16.8498850700311, 40.37355040588789 ], [ 16.786363791856015, 40.302738117795847 ], [ 16.74948118698984, 40.245793860475189 ], [ 16.7312739437983, 40.202710863304247 ], [ 16.684080799705409, 40.144215968694446 ], [ 16.643872047782747, 40.119038643631164 ], [ 16.627769254874952, 40.129728068067337 ], [ 16.5872156635 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Sicilia", "ISO": "IT-82" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 15.620346148337672, 38.272714104126621 ], [ 15.610822331229892, 38.256581694015296 ], [ 15.583623902963463, 38.246702842682197 ], [ 15.567533711822881, 38.224454616505163 ], [ 15.549741174324984, 38.168067280667636 ], [ 15.521791866461216, 38.128259743595223 ], [ 15.493774293659541, 38.074860017890565 ], [ 15.477210919609986, 38.054592593751927 ], [ 15. [...]
-{ "type": "Feature", "properties": { "NAME_1": "Sardegna", "ISO": "IT-88" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 8.364308832460738, 39.032933946514468 ], [ 8.350785837539155, 39.096924173142888 ], [ 8.373142350406905, 39.112218809100682 ], [ 8.386417613773503, 39.099234735012615 ], [ 8.425741780700889, 39.108923674287148 ], [ 8.431567328398716, 39.095885102180084 ], [ 8.456489585553841, 39.083743272264719 ], [ 8.464582369894186, 39.0579977288143 ], [ 8.4884161797 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Calabria", "ISO": "IT-78" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.643872047782747, 40.119038643631164 ], [ 16.609069047586942, 40.084914132452681 ], [ 16.598989646350233, 40.037393556802158 ], [ 16.618466903715284, 39.976432212791444 ], [ 16.628884033675135, 39.967378595533269 ], [ 16.604540569532581, 39.931000125305125 ], [ 16.554897098172898, 39.888384470293097 ], [ 16.49674663742093, 39.817776801989737 ], [ 16.4861774 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Piemonte", "ISO": "IT-21" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 8.714815174881675, 46.09804279081736 ], [ 8.705672484500239, 46.081394093847756 ], [ 8.72876349224258, 46.029232087331479 ], [ 8.719322009721374, 46.011145796848069 ], [ 8.682299171094328, 45.986887611440487 ], [ 8.587887044177481, 45.916927845249063 ], [ 8.569446777720254, 45.89412925833448 ], [ 8.59231149983346, 45.852446370533762 ], [ 8.595200847790371, 45 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Valle d'Aosta", "ISO": "IT-23" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 7.864048284549527, 45.916439364669955 ], [ 7.868816135070534, 45.867721946645133 ], [ 7.863100279395171, 45.790989123359545 ], [ 7.900164962190673, 45.74924676293584 ], [ 7.929003239798807, 45.74244267625572 ], [ 7.936624515996284, 45.724342593321118 ], [ 7.905208199525089, 45.681961972446246 ], [ 7.939504004237182, 45.643697391533522 ], [ 7.915904355570 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Lombardia", "ISO": "IT-25" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 10.453137486280417, 46.530551006376491 ], [ 10.457940426074908, 46.510589612535959 ], [ 10.484530696550369, 46.493600815227822 ], [ 10.551960791889435, 46.491456659887895 ], [ 10.5770823544136, 46.473365119864184 ], [ 10.600492368602493, 46.468664278553447 ], [ 10.62183698232052, 46.447960643498341 ], [ 10.619058845987286, 46.418139569286161 ], [ 10.63046179 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Trentino-Alto Adige", "ISO": "IT-32" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 12.477594353987696, 46.679821263820415 ], [ 12.434241768382297, 46.668280548276847 ], [ 12.40574775752375, 46.643199132043549 ], [ 12.379773560307624, 46.642907395660067 ], [ 12.385163313207311, 46.622781708630662 ], [ 12.360103329521952, 46.619484689912667 ], [ 12.339704826308852, 46.631377894466908 ], [ 12.283836514981516, 46.617926058700036 ], [ [...]
-{ "type": "Feature", "properties": { "NAME_1": "Veneto", "ISO": "IT-34" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 12.731981346929517, 46.633812917020975 ], [ 12.704720976229961, 46.618395649042476 ], [ 12.656792202741341, 46.572548390270775 ], [ 12.643940103489632, 46.576050673904099 ], [ 12.619164000901229, 46.54003574363432 ], [ 12.630021099358675, 46.500706650862952 ], [ 12.654062693711976, 46.484387004388218 ], [ 12.606068810736311, 46.46412668753316 ], [ 12.5699539679 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Liguria", "ISO": "IT-42" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 8.486071903347417, 44.308319786532742 ], [ 8.448126451427843, 44.285446296457877 ], [ 8.442363161115221, 44.265206589792527 ], [ 8.456329590367696, 44.258401239006382 ], [ 8.415849392833646, 44.220905155171558 ], [ 8.422249925455526, 44.192570065536138 ], [ 8.329069907015196, 44.161256552237411 ], [ 8.291604159456728, 44.152153239350199 ], [ 8.269068025901213, [...]
-{ "type": "Feature", "properties": { "NAME_1": "Friuli Venezia Giulia", "ISO": "IT-36" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.536229675353241, 45.784268587085208 ], [ 13.520736456328555, 45.757091496390395 ], [ 13.532056417292116, 45.72371042702796 ], [ 13.424270306689502, 45.677236481850343 ], [ 13.351198404682442, 45.679028609018445 ], [ 13.291559284449798, 45.704070152764409 ], [ 13.233325753637928, 45.714708273671071 ], [ 13.185788887928551, 45.711154248492527 ], [...]
-{ "type": "Feature", "properties": { "NAME_1": "Puglia", "ISO": "IT-75" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 17.967821402873685, 40.659775357583207 ], [ 17.967842054664601, 40.659637578755287 ], [ 17.982176659936592, 40.644444511556387 ], [ 17.998613846560186, 40.649032569992094 ], [ 18.018141596568501, 40.621976473143683 ], [ 18.045139096582577, 40.597176308206564 ], [ 18.03524928475559, 40.574939602605752 ], [ 18.042271955323475, 40.558564130726388 ], [ 18.074734229 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Emilia-Romagna", "ISO": "IT-45" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 11.426742032083617, 44.950083525538552 ], [ 11.434076896437318, 44.929395433737284 ], [ 11.469601804442512, 44.936373070133506 ], [ 11.534130503841563, 44.936245910947797 ], [ 11.586428680547797, 44.911339161814546 ], [ 11.592083579366152, 44.892039155417017 ], [ 11.624808733599158, 44.889223040537608 ], [ 11.672844863527706, 44.915165703183959 ], [ 11. [...]
-{ "type": "Feature", "properties": { "NAME_1": "Toscana", "ISO": "IT-52" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 11.137898216451434, 42.434638438303686 ], [ 11.166126551890356, 42.437636073525638 ], [ 11.189654025327302, 42.481411503348255 ], [ 11.190423126022779, 42.517381664198844 ], [ 11.158172567772702, 42.562051702538078 ], [ 11.11718412047307, 42.565828953581935 ], [ 11.104838807595412, 42.596836112894721 ], [ 11.062590142399284, 42.639026672474849 ], [ 11.0 [...]
-{ "type": "Feature", "properties": { "NAME_1": "Umbria", "ISO": "IT-55" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.189215833537546, 42.733577628927513 ], [ 13.190655787651554, 42.712751553959187 ], [ 13.17333487487914, 42.687313921861367 ], [ 13.174140797605588, 42.666105124295683 ], [ 13.14423367035819, 42.64631056821036 ], [ 13.1304959748211, 42.659301116771282 ], [ 13.097805149524875, 42.636308500135243 ], [ 13.058573752524453, 42.622842295271468 ], [ 13.0153298898276 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-21", "NAME_1": "Piemonte" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 7.687931964188806, 44.09079857219632 ], [ 7.64188968900001, 44.143559876000083 ], [ 7.655635620000055, 44.176064352000097 ], [ 7.34061608900015, 44.123664449000088 ], [ 7.144969116000084, 44.207225240000085 ], [ 6.973403361000095, 44.249444885000045 ], [ 6.869843791000051, 44.362926331 ], [ 6.877181844000035, 44.414396057000076 ], [ 6.917799519000084, 44.4363 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-23", "NAME_1": "Valle d'Aosta" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 7.022082560000115, 45.925259909 ], [ 7.090192097000113, 45.880508118000122 ], [ 7.153547404000022, 45.87652903300004 ], [ 7.286665893000105, 45.913426005000062 ], [ 7.393842814000038, 45.915699768000096 ], [ 7.541120646000138, 45.984119365000069 ], [ 7.643026571000121, 45.966342672000039 ], [ 7.706278523, 45.925724997000103 ], [ 7.831232137000143, 45.914 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-25", "NAME_1": "Lombardia" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 10.661755320351745, 45.419034707086041 ], [ 10.702426708425833, 45.422814003663291 ], [ 10.702119090823373, 45.382450233191662 ], [ 10.717939403980324, 45.361213659482758 ], [ 10.697460887709781, 45.320256626941728 ], [ 10.740153760187866, 45.316048862764774 ], [ 10.761071730176184, 45.293669712087535 ], [ 10.794623977014908, 45.307204868609801 ], [ 10.84861 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-32", "NAME_1": "Trentino-Alto Adige" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 11.832238763508087, 46.504033527525223 ], [ 11.834238274776567, 46.483829669603551 ], [ 11.895695796723601, 46.454759844391276 ], [ 11.860957025746131, 46.427085282259952 ], [ 11.84819091188109, 46.381019606769428 ], [ 11.799213859332156, 46.353191236286477 ], [ 11.848037103529464, 46.307872631216924 ], [ 11.853464350199602, 46.273716136190728 ], [ [...]
+{ "type": "Feature", "properties": { "ISO": "IT-34", "NAME_1": "Veneto" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 12.321256412437899, 45.164807313841131 ], [ 12.328461134000065, 45.10101959800005 ], [ 12.307302280000044, 45.107855536000045 ], [ 12.307302280000044, 45.12836334800005 ], [ 12.296722852000073, 45.088568427000041 ], [ 12.340830925000091, 45.081447658000059 ], [ 12.376231316000087, 45.038967190000051 ], [ 12.35515384200005, 45.024644273000035 ], [ 12.3688 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-36", "NAME_1": "Friuli-Venezia Giulia" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.588513778236168, 45.806482477016267 ], [ 13.778724406000038, 45.743410543000081 ], [ 13.858409465000079, 45.649359436000012 ], [ 13.893136027000111, 45.634683329000026 ], [ 13.887038208000149, 45.618766988000104 ], [ 13.84776411900009, 45.584660543000055 ], [ 13.711761915000068, 45.59320709800005 ], [ 13.73015384200005, 45.613104559000078 ], [ [...]
+{ "type": "Feature", "properties": { "ISO": "IT-42", "NAME_1": "Liguria" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 7.502289259000065, 43.792222398000035 ], [ 7.477868693000062, 43.86551483200013 ], [ 7.630934285000137, 43.993543193000036 ], [ 7.65336185700005, 44.039690247000053 ], [ 7.689948771000076, 44.06733713800007 ], [ 7.687931964188806, 44.09079857219632 ], [ 7.738007650132943, 44.099378895019981 ], [ 7.729020832845151, 44.11482567296639 ], [ 7.742973470848995, 44.1 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-45", "NAME_1": "Emilia-Romagna" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 12.490736531221911, 43.965044292228598 ], [ 12.482160321000038, 43.982566786000078 ], [ 12.453324871000092, 43.97905278900005 ], [ 12.395653973000037, 43.948408664000013 ], [ 12.385628745000105, 43.924534153000124 ], [ 12.421106834936927, 43.895173510312112 ], [ 12.420249039461567, 43.878158183053699 ], [ 12.351452650319516, 43.869951395440523 ], [ 12.3 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-52", "NAME_1": "Toscana" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 10.297048373000052, 42.344875393000052 ], [ 10.315928582000083, 42.340765692000048 ], [ 10.313243035000085, 42.323919989000046 ], [ 10.294444207000083, 42.328029690000051 ], [ 10.297048373000052, 42.344875393000052 ] ] ], [ [ [ 10.091644727000073, 42.595770575000074 ], [ 10.085785352000073, 42.572455145000049 ], [ 10.050303582000083, 42.581935940000051  [...]
+{ "type": "Feature", "properties": { "ISO": "IT-55", "NAME_1": "Umbria" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 12.901977573606132, 42.609599784802185 ], [ 12.879191928464707, 42.590318778788571 ], [ 12.880114779473502, 42.564687674196762 ], [ 12.717648953136688, 42.494045581238538 ], [ 12.722153347898654, 42.454000414487496 ], [ 12.652016626266288, 42.443816087842151 ], [ 12.612136253984943, 42.463119066991339 ], [ 12.592602561858712, 42.401002365366821 ], [ 12.5 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-57", "NAME_1": "Marche" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.853485288725958, 43.067356655087679 ], [ 13.905526647137037, 42.901560778607006 ], [ 13.719140690790255, 42.863021425898069 ], [ 13.664978090666352, 42.811440612993863 ], [ 13.536372128770722, 42.811154968526978 ], [ 13.490119685674927, 42.744105405440109 ], [ 13.443713434227618, 42.728757504355315 ], [ 13.411567436587916, 42.695117366773047 ], [ 13.33756352 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-62", "NAME_1": "Lazio" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 13.418955925000091, 40.795599677000041 ], [ 13.424164259000065, 40.80023834800005 ], [ 13.431976759000065, 40.801459052000041 ], [ 13.414724155000044, 40.78587474200009 ], [ 13.418955925000091, 40.795599677000041 ] ] ], [ [ [ 13.74366407134597, 41.23760326943394 ], [ 13.708506707000083, 41.256415106000077 ], [ 13.594411655000044, 41.253119208000044 ], [ 1 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-65", "NAME_1": "Abruzzo" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 14.25715884396045, 42.446074868214772 ], [ 14.387380405000044, 42.372951565000051 ], [ 14.42904707100007, 42.32172272300005 ], [ 14.56023196700005, 42.225653387000079 ], [ 14.709239129000082, 42.175482489000046 ], [ 14.729502800000091, 42.099107164000088 ], [ 14.76335696700005, 42.077948309000078 ], [ 14.744340924593985, 42.013042145278746 ], [ 14.647045999173 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-67", "NAME_1": "Molise" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 14.382694794728991, 41.441960703923314 ], [ 14.222512292208478, 41.494806041865331 ], [ 14.120866780377582, 41.4956629752661 ], [ 14.080195391404175, 41.447707651486894 ], [ 14.109089436028626, 41.392688117962223 ], [ 14.031482011085927, 41.398148322986685 ], [ 13.988020095051354, 41.458089731855637 ], [ 13.96180671540759, 41.470702036469788 ], [ 14.00931160025 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-72", "NAME_1": "Campania" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 15.646651419391926, 40.046931666694626 ], [ 15.624278191000087, 40.077785549000055 ], [ 15.53492272200009, 40.077785549000055 ], [ 15.429601880000064, 39.999792660000082 ], [ 15.360943483000085, 39.998890575000075 ], [ 15.314300977000073, 40.033758856000077 ], [ 15.261241082000083, 40.029364325000074 ], [ 15.279144727000073, 40.047674872000073 ], [ 15. [...]
+{ "type": "Feature", "properties": { "ISO": "IT-75", "NAME_1": "Apulia" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 18.098928192790666, 40.517934358907453 ], [ 18.238291863000086, 40.45766836100006 ], [ 18.303233269000089, 40.399888414000088 ], [ 18.43726647200009, 40.26788971600007 ], [ 18.516123894000089, 40.139227606000077 ], [ 18.516123894000089, 40.104478257000039 ], [ 18.483571811000047, 40.055161851000037 ], [ 18.434092644000089, 40.022528387000079 ], [ 18.41138756600 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-77", "NAME_1": "Basilicata" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.863276657791516, 40.390919726364245 ], [ 16.782725457000083, 40.301581122000073 ], [ 16.730723504000082, 40.200669664000088 ], [ 16.640048698588544, 40.118748515631466 ], [ 16.421140305480719, 40.132743000888752 ], [ 16.387610030878193, 40.000709304490783 ], [ 16.344038251863822, 39.9352417729894 ], [ 16.357683271365886, 39.902216869712731 ], [ 16.307717 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-78", "NAME_1": "Calabria" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.573491658469187, 38.467325027888535 ], [ 16.561371290000068, 38.41632721600007 ], [ 16.508148634000065, 38.371527411000045 ], [ 16.339854363000086, 38.300848700000074 ], [ 16.169444207000083, 38.14321523600006 ], [ 16.125498894000089, 38.004828192000048 ], [ 16.077159050000091, 37.939886786000045 ], [ 16.000987175000091, 37.919012762000079 ], [ 15.94214928 [...]
+{ "type": "Feature", "properties": { "ISO": "IT-82", "NAME_1": "Sicily" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 12.621755405000044, 35.509751695000034 ], [ 12.61109459700009, 35.489243882000039 ], [ 12.526133660000085, 35.516669012000079 ], [ 12.555674675000091, 35.521226304000038 ], [ 12.621755405000044, 35.509751695000034 ] ] ], [ [ [ 12.859873894000089, 35.872219143000052 ], [ 12.874034050000091, 35.866441148000035 ], [ 12.872569207000083, 35.85228099200009 ],  [...]
+{ "type": "Feature", "properties": { "ISO": "IT-88", "NAME_1": "Sardegna" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 8.305837436000047, 39.193304755000042 ], [ 8.305837436000047, 39.104559637000079 ], [ 8.254730665000068, 39.107123114000046 ], [ 8.257334832000083, 39.124416408000059 ], [ 8.224619988000086, 39.157049872000073 ], [ 8.229991082000083, 39.172796942000048 ], [ 8.305837436000047, 39.193304755000042 ] ] ], [ [ [ 8.455902540000068, 39.073553778000075 ], [ 8. [...]
 ]
 }