Download EXACTLY this file: https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_0_countries.zip Extract and convert to GeoJSON (using mapshaper or ogr2ogr): mapshaper ne_10m_admin_0_countries.shp \ -filter "CONTINENT === 'Europe'" \ -simplify 5% keep-shapes \ -o europe_10m.geojson Put europe_10m.geojson in the same directory as this HTML file. */ d3.json('europe_10m.geojson').then(data => { svg .attr('viewBox', `0 0 ${window.innerWidth} ${window.innerHeight}`) .selectAll('path') .data(data.features) .join('path') .attr('d', path) .attr('class', 'country') .attr('id', d => d.properties.ADM0_A3) .attr('data-name', d => d.properties.ADMIN) .attr('data-iso', d => d.properties.ISO_A3) // JS HOOKS (game / UI ready) .on('click', (event, d) => { console.log('Clicked:', d.properties.ADMIN); }) .on('mouseover', function () { d3.select(this).raise(); }); }); /********************************************************************** * RESIZE HANDLING **********************************************************************/ window.addEventListener('resize', () => { projection.translate([window.innerWidth / 2, window.innerHeight / 2]); svg.selectAll('path').attr('d', path); });