Public
Edited
Nov 28
3 forks
6 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
projection = d3.geoAzimuthalEqualArea().rotate([rotateX, rotateY]).scale(scale)
Insert cell
Insert cell
configs = {
let franceInsetHeight = 80;
let franceInsetWidth = 90;
let p = 5;
return {
AL: {
id: "AL",
rotate: [-20.5, -41.5],
scale: 11000,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "MONTENEGRO",
x: 19.1,
y: 42.5,
class: "countries",
size: 16
},
{
text: "KOSOVO*",
x: 20.9,
y: 42.5,
class: "countries",
size: 16
},
{
text: "NORTH MACEDONIA",
x: 21.7,
y: 41.5,
class: "countries",
size: 16
},
{
text: "GREECE",
x: 21.7,
y: 40,
class: "countries",
size: 16
},
{
text: "ITALY",
x: 17.7,
y: 40.5,
class: "countries",
size: 16
}
]
},
AT: {
id: "AT",
rotate: [-14.1, -48],
scale: 8300,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "GERMANY",
x: 11,
y: 48,
class: "countries",
size: 17,
letterSpacing: 15
},
{
text: "CZECHIA",
x: 15.768603,
y: 49.266371,
class: "countries",
size: 17,
letterSpacing: 15
},
{
text: "HUNGARY",
x: 17.3,
y: 47.1,
class: "countries",
size: 16,
letterSpacing: 12,
rotate: -90
},
{
text: "SWITZERLAND",
x: 9.82,
y: 46.64,
class: "countries",
size: 12,
letterSpacing: 2
},
{
text: "LIECHTENSTEIN",
x: 9.59,
y: 47.138,
class: "countries",
size: 8.5
},
{
text: "SLOVAKIA",
x: 17.37,
y: 48.45,
class: "countries",
rotate: -90,
size: 11,
letterSpacing: 5
},
{
text: "ITALY",
x: 11.8,
y: 46.1,
class: "countries",
size: 16,
letterSpacing: 15
},
{
text: "SLOVENIA",
x: 14.7,
y: 46,
class: "countries",
size: 16,
letterSpacing: 12
},
{
text: "CROATIA",
x: 16.45,
y: 45.65,
class: "countries",
size: 16,
letterSpacing: 12
}
]
},
BE: {
id: "BE",
rotate: [-5.1, -50.7],
scale: 15000,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "FRANCE",
x: 3.4,
y: 50,
class: "countries",
size: 15,
rotate: 45,
letterSpacing: 35
},
{
text: "LUXEMBOURG",
x: 6.18,
y: 49.7,
class: "countries",
size: 11
},
{
text: "GERMANY",
x: 6.8,
y: 50.5,
class: "countries",
size: 15,
rotate: -90,
letterSpacing: 35
},
{
text: "THE NETHERLANDS",
x: 5.15,
y: 51.55,
class: "countries",
size: 15,
letterSpacing: 9
}
]
},
BG: {
id: "BG",
rotate: [-26.1, -43.1],
scale: 8900,
legend: {
x: width - 120,
y: height - 150
},
labels: [
{
text: "SERBIA",
x: 22.38,
y: 43.1,
class: "countries",
size: 15,
letterSpacing: 9
},
{
text: "NORTH",
x: 22.45,
y: 41.7,
class: "countries",
size: 13,
letterSpacing: 3
},
{
text: "MACEDONIA",
x: 22.45,
y: 41.6,
class: "countries",
size: 13,
letterSpacing: 3
},
{
text: "CROATIA",
x: 24,
y: 41,
class: "countries",
size: 15,
letterSpacing: 11
},
{
text: "TÜRKIYE",
x: 27.3,
y: 41.7,
class: "countries",
size: 15,
letterSpacing: 11
},
{
text: "ROMANIA",
x: 25.2,
y: 44.3,
class: "countries",
size: 15,
letterSpacing: 15
}
]
},
CH: {
id: "CH",
rotate: [-8.8, -46.9],
scale: 12400,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "GERMANY",
x: 9.5,
y: 47.8,
class: "countries",
size: 15,
letterSpacing: 10
},
{
text: "FRANCE",
x: 6.2,
y: 45.8,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "ITALY",
x: 9,
y: 45.5,
class: "countries",
size: 15,
letterSpacing: 15
},
{
text: "AUSTRIA",
x: 10.49,
y: 47.05,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "LIECHTENSTEIN",
x: 9.56,
y: 47.11,
class: "countries",
size: 9
}
]
},
CY: {
id: "CY",
rotate: [-33.7, -35.3],
scale: 20000,
legend: {
x: 10,
y: 10
}
},
CZ: {
id: "CZ",
rotate: [-16.3, -50.1],
scale: 9300,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "POLAND",
x: 17.57,
y: 50.68,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "SLOVAKIA",
x: 18.4,
y: 48.5,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "AUSTRIA",
x: 15.202315,
y: 48.157612,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "GERMANY",
x: 12.8,
y: 51,
class: "countries",
size: 15,
letterSpacing: 12
}
]
},
DE: {
id: "DE",
rotate: [-12.34, -52],
scale: 4300,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "FRANCE",
x: 5.2,
y: 48.2,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "BELGIUM",
x: 4.560463,
y: 50.57517,
class: "countries",
size: 13,
letterSpacing: 6
},
{
text: "THE",
x: 5.5,
y: 52.3,
class: "countries",
size: 13
},
{
text: "NETHERLANDS",
x: 5.5,
y: 52,
class: "countries",
size: 13
},
{
text: "POLAND",
x: 17.2,
y: 52,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "CZECHIA",
x: 15.3,
y: 49.5,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "AUSTRIA",
x: 14.9,
y: 47.5,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "SWITZERLAND",
x: 8.144384,
y: 46.9,
class: "countries",
size: 13,
letterSpacing: 3
},
{
text: "DENMARK",
x: 10.5,
y: 55.052293,
class: "countries",
size: 13,
letterSpacing: 12
},
{
text: "LUXEMBOURG",
x: 6.13,
y: 49.69,
class: "countries",
size: 9
}
]
},
DK: {
id: "DK",
rotate: [-12.4, -56.5],
scale: 10200,
legend: {
x: width - 150,
y: 10
},
labels: [
{
text: "SWEDEN",
x: 13.94,
y: 56.45,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "GERMANY",
x: 9.45,
y: 54.58,
class: "countries",
size: 15,
letterSpacing: 4
}
]
},
EE: {
id: "EE",
rotate: [-25.7, -58.8],
scale: 12700,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "LATVIA",
x: 26.16,
y: 57.21,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "RUSSIAN FEDERATION",
x: 28.3,
y: 58.34,
class: "countries",
size: 15,
rotate: -90,
letterSpacing: 12
}
]
},
EL: {
id: "EL",
rotate: [-26.1, -38.9],
scale: 4900,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "TÜRKIYE",
x: 29.19,
y: 38.23,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "ALBANIA",
x: 20.2,
y: 40.5,
class: "countries",
size: 13,
letterSpacing: 5
},
{
text: "BULGARIA",
x: 24.7,
y: 41.57,
class: "countries",
size: 13,
letterSpacing: 10
},
{
text: "NORTH",
x: 21.76,
y: 41.42,
class: "countries",
size: 13
},
{
text: "MACEDONIA",
x: 21.76,
y: 41.2,
class: "countries",
size: 13
}
]
},
ES: {
id: "ES",
rotate: [1.5, -40.55],
scale: 3900,
legend: {
x: width - 140,
y: height - 180
},
labels: [
{
text: "FRANCE",
x: 1.5,
y: 43.5,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "PORTUGAL",
rotate: -80,
x: -7.9,
y: 39.7,
class: "countries",
size: 15,
letterSpacing: 16
},
{
text: "ANDORRA",
x: 1.56,
y: 42.55,
class: "countries",
size: 11
},
{
text: "MEDITERRANEAN SEA",
rotate: -30,
x: 1.5,
y: 37.7,
class: "seas",
size: 13,
letterSpacing: 12
},
{
text: "ATLANTIC OCEAN",
rotate: 90,
x: -10.7,
y: 39,
class: "seas",
size: 13,
letterSpacing: 12
}
],
insets: [
{
geo: "IC",
x: 0,
y: 0,
pixSize: 2900,
geoCenter: [410000, 3160000],
width: 200,
height: 90,
title: "Islas Canarias",
titleFontSize: 14,
titleFontWeight: "",
showScalebar: true,
scalebarTickHeight: 6,
scalebarSegmentHeight: 6,
scalebarFontSize: 9,
scalebarUnits: " km",
scalebarTextOffset: [0, 8],
scalebarPosition: [135, 72],
scalebarMaxWidth: 35
},
{
geo: "EUR",
x: 280,
y: 30,
scale: "03M",
pixSize: 300,
geoCenter: [2935033, 1564629],
width: 60,
height: 60,
title: "Ceuta",
titlePosition: [4, 13],
titleFontSize: 13,
frameStrokeWidth: 1,
showScalebar: true,
scalebarTickHeight: 6,
scalebarSegmentHeight: 6,
scalebarFontSize: 9,
scalebarUnits: " km",
scalebarTextOffset: [0, 8],
scalebarPosition: [26, 42],
scalebarMaxWidth: 18
},
{
geo: "EUR",
x: 410,
y: 30,
scale: "03M",
pixSize: 250,
geoCenter: [3141000, 1461000],
width: 60,
height: 60,
title: "Melilla",
titlePosition: [4, 13],
titleFontSize: 13,
titleFontWeight: "",
showScalebar: true,
scalebarTickHeight: 6,
scalebarSegmentHeight: 6,
scalebarFontSize: 9,
scalebarUnits: " km",
scalebarTextOffset: [0, 8],
scalebarPosition: [23, 42],
scalebarMaxWidth: 20
}
],
insetBoxPosition: [0, 530]
},
EU: {
rotate: [-24, -57.55],
scale: 900,
legend: {
x: 10,
y: 10
}
},
FI: {
id: "FI",
rotate: [-28.1, -66.1],
scale: 3400,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "SWEDEN",
x: 17.979165,
y: 64.896644,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "NORWAY",
x: 22.5,
y: 69.35,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "RUSSIAN",
x: 35,
y: 61.5,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "FEDERATION",
x: 35,
y: 61,
class: "countries",
size: 15,
letterSpacing: 12
}
]
},
FR: {
id: "FR",
rotate: [-3.2, -47.3],
scale: 3600,
legend: {
x: 10,
y: 5
},
labels: [
{
text: "SPAIN",
x: -0.9,
y: 41.9,
class: "countries",
size: 15,
letterSpacing: 16
},
{
text: "ANDORRA",
x: 1.65,
y: 42.6,
class: "countries",
size: 10,
letterSpacing: 1
},
{
text: "GERMANY",
x: 9,
y: 50.1,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "BELGIUM",
x: 4.54,
y: 50.5,
class: "countries",
size: 15,
letterSpacing: 2
},
{
text: "SWITZERLAND",
x: 8.3,
y: 46.65,
class: "countries",
size: 13,
letterSpacing: 2
},
{
text: "ITALY",
x: 8.9,
y: 45,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "LUXEMBOURG",
x: 6.13,
y: 49.69,
class: "countries",
size: 9
},
{
text: "UNITED KINGDOM",
x: -2,
y: 50.8,
size: 12,
letterSpacing: 9,
class: "countries"
}
],
insets: [
{
geo: "GP",
x: 5,
y: 0,
width: franceInsetWidth,
height: franceInsetHeight,
title: "Guadeloupe (FR)",
titleFontSize: 10,
pixSize: 2100,
geoCenter: [660000, 1800000],
showScalebar: true
},
{
geo: "GP",
x: 5 + 5,
y: 15,
width: 23,
height: 15,
pixSize: 1200,
geoCenter: [493000, 1998000],
frameStrokeWidth: 0.8
},
{
geo: "GF",
x: 5,
y: franceInsetHeight + p,
width: franceInsetWidth,
height: franceInsetHeight,
pixSize: 7400,
title: "Guyane (FR)",
titleFontSize: 11,
geoCenter: [391852, 484074],
showScalebar: true,
scalebarPosition: [37, 60],
scalebarMaxWidth: 29
},
{
geo: "MQ",
x: 5,
y: franceInsetHeight * 2 + p * 2,
width: franceInsetWidth,
height: franceInsetHeight,
title: "Martinique (FR)",
titleFontSize: 11,
pixSize: 1000,
geoCenter: [716521, 1621322],
showScalebar: true
},
{
geo: "YT",
x: 5,
y: franceInsetHeight * 3 + p * 3,
width: franceInsetWidth,
height: franceInsetHeight,
title: "Mayotte (FR)",
titleFontSize: 11,
showScalebar: true
},
{
geo: "RE",
x: 5,
y: franceInsetHeight * 4 + p * 4,
width: franceInsetWidth,
height: franceInsetHeight,
title: "Réunion (FR)",
titleFontSize: 11,
showScalebar: true
}
],
insetBoxPosition: [0, 200]
},
HR: {
id: "HR",
rotate: [-17.2, -44.9],
scale: 8200,
legend: {
x: 10,
y: height - 180
},
labels: [
{
text: "ITALY",
x: 12.95,
y: 45.95,
class: "countries",
size: 16,
letterSpacing: 12
},
{
text: "SLOVENIA",
x: 14.7,
y: 46,
class: "countries",
size: 16,
letterSpacing: 12
},
{
text: "HUNGARY",
x: 18.5,
y: 46.4,
class: "countries",
size: 16,
letterSpacing: 12
},
{
text: "SERBIA",
x: 19.8,
y: 44.4,
class: "countries",
size: 16,
rotate: 80,
letterSpacing: 15
},
{
text: "MONTENEGRO",
x: 19.3,
y: 42.8,
class: "countries",
size: 13,
letterSpacing: 5
},
{
text: "BOSNIA",
x: 17.9,
y: 44.3,
class: "countries",
size: 15,
letterSpacing: 0.5
},
{
text: "AND",
x: 17.9,
y: 44.03,
class: "countries",
size: 15,
letterSpacing: 0.5
},
{
text: "HERZEGOVINA",
x: 17.9,
y: 43.755,
class: "countries",
size: 15,
letterSpacing: 0.5
}
]
},
HU: {
id: "HU",
rotate: [-20.2, -47.4],
scale: 9000,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "SERBIA",
x: 20,
y: 45.4,
class: "countries",
size: 15,
letterSpacing: 8
},
{
text: "ROMANIA",
x: 22.2,
y: 45.8,
class: "countries",
size: 15,
letterSpacing: 8
},
{
text: "CROATIA",
x: 17,
y: 45.5,
class: "countries",
size: 15,
letterSpacing: 8
},
{
text: "SLOVAKIA",
x: 19,
y: 48.4,
class: "countries",
size: 15,
letterSpacing: 8
},
{
text: "AUSTRIA",
x: 15.9,
y: 47.4,
class: "countries",
size: 15,
rotate: 90,
letterSpacing: 8
},
{
text: "SLOVENIA",
x: 16.1,
y: 46.5,
class: "countries",
size: 12,
rotate: -19,
letterSpacing: 1
},
{
text: "UKRAINE",
x: 22.8,
y: 48.5,
class: "countries",
size: 15,
letterSpacing: 1
}
]
},
IE: {
id: "IE",
rotate: [7.3, -53.8],
scale: 8300,
legend: {
x: 10,
y: 10
}
},
IS: {
id: "IS",
rotate: [17.7, -65.5],
scale: 8200,
legend: {
x: 10,
y: 10
}
},
IT: {
id: "IT",
rotate: [-13.4, -42.5],
scale: 3000,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "CROATIA",
x: 17.2,
y: 45.3,
class: "countries",
size: 13,
letterSpacing: 8
},
{
text: "SLOVENIA",
x: 15,
y: 46,
class: "countries",
size: 11,
rotate: -19,
letterSpacing: 3
},
{
text: "AUSTRIA",
x: 14.3,
y: 46.8,
class: "countries",
size: 13,
letterSpacing: 8
},
{
text: "SERBIA",
x: 20.7,
y: 44.2,
class: "countries",
size: 13,
letterSpacing: 8
},
{
text: "KOSOVO*",
x: 20.9,
y: 42.33,
class: "countries",
size: 8,
letterSpacing: 0
},
{
text: "SWITZERLAND",
x: 8.3,
y: 46.6,
class: "countries",
size: 12,
letterSpacing: 2
},
{
text: "FRANCE",
x: 3.5,
y: 45,
class: "countries",
size: 12,
letterSpacing: 12
},
{
text: "HUNGARY",
x: 19,
y: 46.5,
class: "countries",
size: 13,
letterSpacing: 8
},
{
text: "MONTENEGRO",
x: 19.4,
y: 42.7,
class: "countries",
size: 8,
letterSpacing: 0.5
},
{
text: "BOSNIA",
x: 17.9,
y: 44.3,
class: "countries",
size: 11,
letterSpacing: 0.5
},
{
text: "AND",
x: 17.9,
y: 44.05,
class: "countries",
size: 11,
letterSpacing: 0.5
},
{
text: "HERZEGOVINA",
x: 17.9,
y: 43.75,
class: "countries",
size: 11,
letterSpacing: 0.5
},
{
text: "ALBANIA",
x: 19.8,
y: 41.1,
class: "countries",
size: 12,
rotate: 80,
letterSpacing: 8
},
{
text: "SPAIN",
x: 2.2,
y: 41.7,
class: "countries",
size: 12,
letterSpacing: 8
},
{
text: "ALGERIA",
x: 7,
y: 35.7,
class: "countries",
size: 12,
letterSpacing: 8
},
{
text: "TUNISIA",
x: 9.5,
y: 35.9,
class: "countries",
size: 12,
letterSpacing: 4
}
]
},
LI: {
id: "LI",
geo: "LI",
rotate: [-9.6, -47.19],
scale: 128500,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "AUSTRIA",
x: 9.7,
y: 47.18,
class: "countries",
size: 13,
letterSpacing: 4
},
{
text: "SWITZERLAND",
x: 9.4,
y: 47.18,
class: "countries",
size: 13,
letterSpacing: 4
}
]
},
LT: {
id: "LT",
rotate: [-24.6, -55.5],
scale: 12300,
legend: {
x: 10,
y: height - 350
},
labels: [
{
text: "BELARUS",
x: 26.4,
y: 54,
class: "countries",
size: 13,
letterSpacing: 4
},
{
text: "RUSSIAN FEDERATION",
x: 21.8,
y: 54.7,
class: "countries",
size: 13,
letterSpacing: 4
},
{
text: "POLAND",
x: 23,
y: 54,
class: "countries",
size: 13,
letterSpacing: 4
},
{
text: "LATVIA",
x: 24,
y: 56.5,
class: "countries",
size: 13,
letterSpacing: 12
}
]
},
LV: {
id: "LV",
rotate: [-25.5, -57.2],
scale: 9500,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "LITHUANIA",
x: 24,
y: 55.21,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "ESTONIA",
x: 26,
y: 58.4,
class: "countries",
size: 15,
letterSpacing: 12
},
{
text: "RUSSIAN FEDERATION",
x: 28.8,
y: 57.5,
class: "countries",
size: 14,
rotate: -90,
letterSpacing: 12
},
{
text: "BELARUS",
x: 28,
y: 55,
class: "countries",
size: 14,
letterSpacing: 4
}
]
},
LU: {
id: "LU",
rotate: [-6.2, -49.9],
scale: 45600,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "FRANCE",
x: 5.75,
y: 49.45,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 10
},
{
text: "BELGIUM",
x: 5.45,
y: 49.79,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 10
},
{
text: "GERMANY",
x: 6.45,
y: 49.95,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 10
}
]
},
ME: {
id: "ME",
rotate: [-19.6, -42.9],
scale: 19200,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "SERBIA",
x: 20,
y: 43.3,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "KOSOVO*",
x: 20.6,
y: 42.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "ALBANIA",
x: 19.9,
y: 42,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "BOSNIA",
x: 18.2,
y: 43.4,
class: "countries",
size: 15,
letterSpacing: 0.5
},
{
text: "AND",
x: 18.2,
y: 43.3,
class: "countries",
size: 15,
letterSpacing: 0.5
},
{
text: "HERZEGOVINA",
x: 18.2,
y: 43.2,
class: "countries",
size: 15,
letterSpacing: 0.5
},
{
text: "CROATIA",
x: 17.82,
y: 42.66,
class: "countries",
size: 15,
rotate: 30,
letterSpacing: 4
}
]
},
MK: {
id: "MK",
rotate: [-22, -41.75],
scale: 19200,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "SERBIA",
x: 20,
y: 43.3,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "KOSOVO*",
x: 21,
y: 42.3,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "SERBIA",
x: 22.1,
y: 42.4,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "ALBANIA",
x: 20.2,
y: 41.7,
class: "countries",
size: 15,
rotate: 90,
letterSpacing: 4
},
{
text: "GREECE",
x: 22.1,
y: 40.8,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "BULGARIA",
x: 22.9,
y: 42.2,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
}
]
},
MT: {
id: "MT",
rotate: [-14.45, -35.97],
scale: 98500,
legend: {
x: 10,
y: 10
}
},
NL: {
id: "NL",
rotate: [-5.9, -52.45],
scale: 12000,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "BELGIUM",
x: 4.8,
y: 51,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "GERMANY",
x: 7.5,
y: 51.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
}
]
},
NO: {
id: "NO",
rotate: [-19.5, -66.4],
scale: 2700,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "SWEDEN",
x: 19.5,
y: 66.4,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "FINLAND",
x: 25.5,
y: 61.4,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
}
]
},
PL: {
id: "PL",
rotate: [-20.5, -52.7],
scale: 5400,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "GERMANY",
x: 13.5,
y: 51.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "CZECHIA",
x: 15,
y: 49.7,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "SLOVAKIA",
x: 20,
y: 48.8,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "UKRAINE",
x: 24.2,
y: 49.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "BELARUS",
x: 24.9,
y: 52.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
}
]
},
PT: {
id: "PT",
rotate: [8.5, -40.1],
scale: 6300,
legend: {
x: 10,
y: height - 200
},
labels: [
{
text: "SPAIN",
x: -6,
y: 39.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
}
],
insets: [
{
frameStrokeWidth: 1,
frameStroke: "grey",
geo: "PT20",
title: "Açores",
x: 5,
y: 5,
width: 200,
height: 215,
titleFontSize: 14,
pixSize: 1100,
geoCenter: [420000, 4350000],
fontFamily: "Myriad-Pro",
showScalebar: true,
scalebarTickHeight: 6,
scalebarSegmentHeight: 6,
scalebarFontSize: 9,
scalebarUnits: " km",
scalebarTextOffset: [4, 8],
scalebarPosition: [127, 195],
scalebarMaxWidth: 80,
labelling: true,
labelsToShow: ["countries", "seas"],
labelsConfig: {
PT20_32626: {
en: [
{
text: "Faial",
x: 340742,
y: 4273793,
class: "countries",
size: 9
},
{
text: "Pico",
x: 356618,
y: 4237386,
class: "countries",
size: 9
},
{
text: "São Jorge",
x: 424483,
y: 4277396,
class: "countries",
size: 9
},
{
text: "Terceira",
x: 507098,
y: 4286955,
class: "countries",
size: 9
},
{
text: "Graciosa",
x: 438837,
y: 4308516,
class: "countries",
size: 9
}
]
}
}
},
{
geo: "PT20",
title: "São Miguel",
titleFill: "#383838",
titleFontSize: 9,
titlePosition: [10, 12],
x: 100,
y: 35,
width: 90,
height: 80,
pixSize: 1100,
geoCenter: [639000, 4170000],
fontFamily: "Myriad-Pro",
frameStrokeWidth: 0.9,
frameStroke: "grey",
insets: [
{
geo: "PT20",

title: "Santa Maria",
titleFill: "#383838",
titleFontSize: 9,
titlePosition: [5, 11],
x: 0,
y: 0,
width: 65,
height: 30,
pixSize: 1100,
geoCenter: [669112, 4099000],
fontFamily: "Myriad-Pro",
frameStrokeWidth: 0.9,
frameStroke: "grey"
}
],
insetBoxPosition: [20, 45]
},
{
geo: "PT20",

title: "Flores",
titleFontSize: 9,
subtitle: "Corvo",
subtitleFontSize: 9,
titleFill: "#383838",
subtitleFill: "#383838",
subtitlePosition: [25, 22],
titlePosition: [8, 50],
x: 15,
y: 35,
width: 80,
height: 80,
pixSize: 1100,
geoCenter: [140000, 4390000],
fontFamily: "Myriad-Pro",
frameStrokeWidth: 0.9,
frameStroke: "grey"
},
{
frameStrokeWidth: 0.9,
frameStroke: "grey",
geo: "PT30",

x: 5,
y: 235,
width: 200,
height: 150,
pixSize: 1100,
geoCenter: [333586, 3642706],
fontFamily: "Myriad-Pro",
showScalebar: true,
scalebarTickHeight: 6,
scalebarSegmentHeight: 6,
scalebarFontSize: 9,
scalebarUnits: " km",
scalebarTextOffset: [4, 8],
scalebarPosition: [8, 127],
scalebarMaxWidth: 80,
titleFontSize: 14,
title: "Madeira",
labelling: true,
labelsToShow: ["countries", "seas"],
labelsConfig: {
PT30_32628: {
en: [
{
text: "Madeira",
x: 298372,
y: 3644268,
class: "countries",
size: 9
},
{
text: "Porto Santo",
x: 373711,
y: 3671516,
class: "countries",
size: 9
},
{
text: "Desertas",
x: 380669,
y: 3594356,
class: "countries",
size: 9
}
]
}
}
}
],
insetBoxPosition: [8, 10]
},
RO: {
id: "RO",
rotate: [-26, -46.5],
scale: 6600,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "MOLDOVA",
x: 28.8,
y: 47,
class: "countries",
size: 12,
letterSpacing: 5
},
{
text: "UKRAINE",
x: 25,
y: 48.2,
class: "countries",
size: 12,
letterSpacing: 12
},
{
text: "BULGARIA",
x: 25.5,
y: 43.35,
class: "countries",
size: 12,
letterSpacing: 12
},
{
text: "SERBIA",
x: 21.5,
y: 44,
class: "countries",
size: 12,
letterSpacing: 12
},
{
text: "HUNGARY",
x: 20.6,
y: 46.4,
class: "countries",
size: 12,
letterSpacing: 4
}
]
},
RS: {
id: "RS",
rotate: [-21.5, -44.5],
scale: 7700,
legend: {
x: width - 200,
y: 10
},
labels: [
{
text: "KOSOVO*",
x: 20.9,
y: 42.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "ALBANIA",
x: 19.9,
y: 42,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "MONTENEGRO",
x: 19.35,
y: 42.8,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "BOSNIA",
x: 18,
y: 44.3,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "AND",
x: 18,
y: 44.1,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "HERZEGOVINA",
x: 18,
y: 43.9,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "CROATIA",
x: 17.5,
y: 45.35,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "HUNGARY",
x: 18.5,
y: 46,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "ROMANIA",
x: 23.7,
y: 44.35,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "BULGARIA",
x: 24,
y: 42.5,
class: "countries",
size: 15,
letterSpacing: 4
},
{
text: "NORTH MACEDONIA",
x: 21.9,
y: 41.75,
class: "countries",
size: 15,
letterSpacing: 3
}
]
},
SE: {
id: "SE",
rotate: [-19.5, -63.7],
scale: 2500,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "NORWAY",
x: 9,
y: 60,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "FINLAND",
x: 25.5,
y: 61.4,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 4
},
{
text: "ESTONIA",
x: 25.6,
y: 58.4,
class: "countries",
size: 12,
rotate: 0,
letterSpacing: 3
},
{
text: "LATVIA",
x: 25.5,
y: 56.5,
class: "countries",
size: 12,
rotate: 0,
letterSpacing: 4
},
{
text: "LITHUANIA",
x: 24,
y: 55.3,
class: "countries",
size: 12,
rotate: 0,
letterSpacing: 4
},
{
text: "BELARUS",
x: 29,
y: 54.9,
class: "countries",
size: 12,
rotate: 0,
letterSpacing: 4
},
{
text: "RUSSIAN FEDERATION",
x: 32,
y: 59.9,
class: "countries",
size: 12,
rotate: 90,
letterSpacing: 10
},
{
text: "DENMARK",
x: 10.3,
y: 55.3,
class: "countries",
size: 12,
rotate: 0,
letterSpacing: 4
}
]
},
SI: {
id: "SI",
rotate: [-15.3, -46.2],
scale: 17500,
legend: {
x: width - 200,
y: height - 200
},
labels: [
{
text: "CROATIA",
x: 16.3,
y: 46.1,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 12
},
{
text: "HUNGARY",
x: 16.55,
y: 46.7,
class: "countries",
size: 13,
rotate: 55,
letterSpacing: 9
},
{
text: "AUSTRIA",
x: 14.3,
y: 46.7,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 12
},
{
text: "ITALY",
x: 13.3,
y: 46.1,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 9
}
]
},
SK: {
id: "SK",
rotate: [-20.4, -49.05],
scale: 10700,
legend: {
x: width - 200,
y: height - 300
},
labels: [
{
text: "HUNGARY",
x: 20.4,
y: 47.5,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 12
},
{
text: "POLAND",
x: 20.4,
y: 49.8,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 12
},
{
text: "CZECHIA",
x: 17.3,
y: 49.4,
class: "countries",
size: 15,
rotate: 0,
letterSpacing: 12
},
{
text: "UKRAINE",
x: 22.6,
y: 48.6,
class: "countries",
size: 15,
rotate: 90,
letterSpacing: 6
},
{
text: "ROMANIA",
x: 22.5,
y: 47.1,
class: "countries",
size: 15,
letterSpacing: 2
},
{
text: "AUSTRIA",
x: 16.6,
y: 48.25,
class: "countries",
size: 15,
rotate: 85,
letterSpacing: 9
}
]
},
TR: {
id: "TR",
rotate: [-37.5, -42],
scale: 2800,
legend: {
x: width - 200,
y: 10
},
labels: [
{
text: "BULGARIA",
x: 26.2,
y: 42.6,
class: "countries",
size: 13,
letterSpacing: 7
},
{
text: "ROMANIA",
x: 26.2,
y: 44.8,
class: "countries",
size: 13,
letterSpacing: 7
},
{
text: "GREECE",
x: 25.4,
y: 38,
class: "countries",
size: 13,
rotate: 80,
letterSpacing: 7
},
{
text: "CYPRUS",
x: 33.3,
y: 34.8,
class: "countries",
size: 13,
letterSpacing: 2
},
{
text: "SYRIA",
x: 38.5,
y: 35,
class: "countries",
size: 13,
letterSpacing: 7
},
{
text: "IRAQ",
x: 43.5,
y: 35,
class: "countries",
size: 13,
letterSpacing: 7
},
{
text: "GEORGIA",
x: 43.5,
y: 41.8,
class: "countries",
size: 13,
letterSpacing: 7
},
{
text: "IRAN",
x: 44.9,
y: 38,
class: "countries",
size: 13,
rotate: 65,
letterSpacing: 7
},
{
text: "ARMENIA",
x: 44.5,
y: 40.3,
class: "countries",
size: 11,
rotate: 35,
letterSpacing: 2
},
{
text: "UKRAINE",
x: 34.9,
y: 45,
class: "countries",
size: 13,
letterSpacing: 7
},
{
text: "MOLDOVA",
x: 28.9,
y: 46.2,
class: "countries",
size: 10,
rotate: -60,
letterSpacing: 0
},
{
text: "RUSSIAN FEDERATION",
x: 43.5,
y: 46.5,
class: "countries",
size: 11,
letterSpacing: 5
}
]
},
UK: {
id: "UK",
rotate: [1.9, -55.7],
scale: 3600,
legend: {
x: 10,
y: 10
},
labels: [
{
text: "IRELAND",
x: -7.5,
y: 53,
class: "countries",
size: 11,
letterSpacing: 5
},
{
text: "BELGIUM",
x: 4.7,
y: 50.5,
class: "countries",
size: 11,
letterSpacing: 5
},
{
text: "THE",
x: 5.3,
y: 52.4,
class: "countries",
size: 11,
rotate: -45,
letterSpacing: 3
},
{
text: "NETHERLANDS",
x: 5.5,
y: 52,
class: "countries",
size: 11,
rotate: -45,
letterSpacing: 3
},
{
text: "FRANCE",
x: 2.7,
y: 49.8,
class: "countries",
size: 11,
letterSpacing: 5
},
{
text: "FRANCE",
x: 2.7,
y: 49.8,
class: "countries",
size: 11,
letterSpacing: 5
},
{
text: "NORWAY",
x: 6.7,
y: 58.5,
class: "countries",
size: 11,
letterSpacing: 1
}
]
}
};
}
Insert cell
projection([1, 40])
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
giscoCountries = d3.json(
"https://gisco-services.ec.europa.eu/distribution/v2/countries/geojson/CNTR_RG_03M_2020_4326.geojson"
)
Insert cell
eurostatmap = require("eurostat-map@3.6.86")
Insert cell
textures = require("textures")
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more