Replace WorldMap with Magic UI DottedMap for visitor locations
- New DottedMap component using svg-dotted-map with country centroid markers - Marker size scales by pageview proportion (brand orange) - Static country-centroids.ts lookup (~200 ISO codes) - Remove react-simple-maps, i18n-iso-countries, world-atlas CDN dependency
This commit is contained in:
205
lib/country-centroids.ts
Normal file
205
lib/country-centroids.ts
Normal file
@@ -0,0 +1,205 @@
|
||||
/**
|
||||
* Country centroids: ISO 3166-1 alpha-2 → { lat, lng }
|
||||
* Used to place markers on the DottedMap for visitor locations.
|
||||
*/
|
||||
export const countryCentroids: Record<string, { lat: number; lng: number }> = {
|
||||
AD: { lat: 42.5, lng: 1.5 },
|
||||
AE: { lat: 24.0, lng: 54.0 },
|
||||
AF: { lat: 33.0, lng: 65.0 },
|
||||
AG: { lat: 17.1, lng: -61.8 },
|
||||
AL: { lat: 41.0, lng: 20.0 },
|
||||
AM: { lat: 40.0, lng: 45.0 },
|
||||
AO: { lat: -12.5, lng: 18.5 },
|
||||
AR: { lat: -34.0, lng: -64.0 },
|
||||
AT: { lat: 47.3, lng: 13.3 },
|
||||
AU: { lat: -25.0, lng: 134.0 },
|
||||
AZ: { lat: 40.5, lng: 47.5 },
|
||||
BA: { lat: 44.0, lng: 17.8 },
|
||||
BB: { lat: 13.2, lng: -59.5 },
|
||||
BD: { lat: 24.0, lng: 90.0 },
|
||||
BE: { lat: 50.8, lng: 4.0 },
|
||||
BF: { lat: 13.0, lng: -1.5 },
|
||||
BG: { lat: 43.0, lng: 25.0 },
|
||||
BH: { lat: 26.0, lng: 50.6 },
|
||||
BI: { lat: -3.5, lng: 29.9 },
|
||||
BJ: { lat: 9.3, lng: 2.3 },
|
||||
BN: { lat: 4.5, lng: 114.7 },
|
||||
BO: { lat: -17.0, lng: -65.0 },
|
||||
BR: { lat: -10.0, lng: -55.0 },
|
||||
BS: { lat: 24.3, lng: -76.0 },
|
||||
BT: { lat: 27.5, lng: 90.5 },
|
||||
BW: { lat: -22.0, lng: 24.0 },
|
||||
BY: { lat: 53.0, lng: 28.0 },
|
||||
BZ: { lat: 17.3, lng: -88.8 },
|
||||
CA: { lat: 56.0, lng: -96.0 },
|
||||
CD: { lat: -3.0, lng: 23.0 },
|
||||
CF: { lat: 7.0, lng: 21.0 },
|
||||
CG: { lat: -1.0, lng: 15.0 },
|
||||
CH: { lat: 47.0, lng: 8.0 },
|
||||
CI: { lat: 8.0, lng: -5.5 },
|
||||
CL: { lat: -30.0, lng: -71.0 },
|
||||
CM: { lat: 6.0, lng: 12.5 },
|
||||
CN: { lat: 35.0, lng: 105.0 },
|
||||
CO: { lat: 4.0, lng: -72.0 },
|
||||
CR: { lat: 10.0, lng: -84.0 },
|
||||
CU: { lat: 22.0, lng: -79.5 },
|
||||
CV: { lat: 16.0, lng: -24.0 },
|
||||
CY: { lat: 35.0, lng: 33.0 },
|
||||
CZ: { lat: 49.8, lng: 15.5 },
|
||||
DE: { lat: 51.2, lng: 10.4 },
|
||||
DJ: { lat: 11.5, lng: 43.1 },
|
||||
DK: { lat: 56.0, lng: 10.0 },
|
||||
DM: { lat: 15.4, lng: -61.4 },
|
||||
DO: { lat: 19.0, lng: -70.7 },
|
||||
DZ: { lat: 28.0, lng: 3.0 },
|
||||
EC: { lat: -2.0, lng: -77.5 },
|
||||
EE: { lat: 59.0, lng: 26.0 },
|
||||
EG: { lat: 27.0, lng: 30.0 },
|
||||
ER: { lat: 15.0, lng: 39.0 },
|
||||
ES: { lat: 40.0, lng: -4.0 },
|
||||
ET: { lat: 8.0, lng: 38.0 },
|
||||
FI: { lat: 64.0, lng: 26.0 },
|
||||
FJ: { lat: -18.0, lng: 175.0 },
|
||||
FM: { lat: 6.9, lng: 158.2 },
|
||||
FR: { lat: 46.0, lng: 2.0 },
|
||||
GA: { lat: -1.0, lng: 11.8 },
|
||||
GB: { lat: 54.0, lng: -2.0 },
|
||||
GD: { lat: 12.1, lng: -61.7 },
|
||||
GE: { lat: 42.0, lng: 43.5 },
|
||||
GH: { lat: 8.0, lng: -2.0 },
|
||||
GM: { lat: 13.5, lng: -15.3 },
|
||||
GN: { lat: 11.0, lng: -10.0 },
|
||||
GQ: { lat: 2.0, lng: 10.0 },
|
||||
GR: { lat: 39.0, lng: 22.0 },
|
||||
GT: { lat: 15.5, lng: -90.3 },
|
||||
GW: { lat: 12.0, lng: -15.0 },
|
||||
GY: { lat: 5.0, lng: -59.0 },
|
||||
HK: { lat: 22.3, lng: 114.2 },
|
||||
HN: { lat: 15.0, lng: -86.5 },
|
||||
HR: { lat: 45.2, lng: 15.5 },
|
||||
HT: { lat: 19.0, lng: -72.4 },
|
||||
HU: { lat: 47.0, lng: 20.0 },
|
||||
ID: { lat: -5.0, lng: 120.0 },
|
||||
IE: { lat: 53.0, lng: -8.0 },
|
||||
IL: { lat: 31.5, lng: 34.8 },
|
||||
IN: { lat: 20.0, lng: 77.0 },
|
||||
IQ: { lat: 33.0, lng: 44.0 },
|
||||
IR: { lat: 32.0, lng: 53.0 },
|
||||
IS: { lat: 65.0, lng: -18.0 },
|
||||
IT: { lat: 42.8, lng: 12.8 },
|
||||
JM: { lat: 18.3, lng: -77.4 },
|
||||
JO: { lat: 31.0, lng: 36.0 },
|
||||
JP: { lat: 36.0, lng: 138.0 },
|
||||
KE: { lat: 1.0, lng: 38.0 },
|
||||
KG: { lat: 41.0, lng: 75.0 },
|
||||
KH: { lat: 13.0, lng: 105.0 },
|
||||
KI: { lat: 1.4, lng: 173.0 },
|
||||
KM: { lat: -12.2, lng: 44.2 },
|
||||
KN: { lat: 17.3, lng: -62.7 },
|
||||
KP: { lat: 40.0, lng: 127.0 },
|
||||
KR: { lat: 37.0, lng: 127.5 },
|
||||
KW: { lat: 29.5, lng: 47.8 },
|
||||
KZ: { lat: 48.0, lng: 68.0 },
|
||||
LA: { lat: 18.0, lng: 105.0 },
|
||||
LB: { lat: 33.9, lng: 35.8 },
|
||||
LC: { lat: 13.9, lng: -61.0 },
|
||||
LI: { lat: 47.2, lng: 9.5 },
|
||||
LK: { lat: 7.0, lng: 81.0 },
|
||||
LR: { lat: 6.5, lng: -9.5 },
|
||||
LS: { lat: -29.5, lng: 28.5 },
|
||||
LT: { lat: 56.0, lng: 24.0 },
|
||||
LU: { lat: 49.8, lng: 6.2 },
|
||||
LV: { lat: 57.0, lng: 25.0 },
|
||||
LY: { lat: 25.0, lng: 17.0 },
|
||||
MA: { lat: 32.0, lng: -5.0 },
|
||||
MC: { lat: 43.7, lng: 7.4 },
|
||||
MD: { lat: 47.0, lng: 29.0 },
|
||||
ME: { lat: 42.5, lng: 19.3 },
|
||||
MG: { lat: -20.0, lng: 47.0 },
|
||||
MK: { lat: 41.8, lng: 22.0 },
|
||||
ML: { lat: 17.0, lng: -4.0 },
|
||||
MM: { lat: 22.0, lng: 98.0 },
|
||||
MN: { lat: 46.0, lng: 105.0 },
|
||||
MO: { lat: 22.2, lng: 113.5 },
|
||||
MR: { lat: 20.0, lng: -12.0 },
|
||||
MT: { lat: 35.9, lng: 14.4 },
|
||||
MU: { lat: -20.3, lng: 57.6 },
|
||||
MV: { lat: 3.2, lng: 73.2 },
|
||||
MW: { lat: -13.5, lng: 34.0 },
|
||||
MX: { lat: 23.0, lng: -102.0 },
|
||||
MY: { lat: 2.5, lng: 112.5 },
|
||||
MZ: { lat: -18.3, lng: 35.0 },
|
||||
NA: { lat: -22.0, lng: 17.0 },
|
||||
NE: { lat: 16.0, lng: 8.0 },
|
||||
NG: { lat: 10.0, lng: 8.0 },
|
||||
NI: { lat: 13.0, lng: -85.0 },
|
||||
NL: { lat: 52.5, lng: 5.8 },
|
||||
NO: { lat: 62.0, lng: 10.0 },
|
||||
NP: { lat: 28.0, lng: 84.0 },
|
||||
NR: { lat: -0.5, lng: 166.9 },
|
||||
NZ: { lat: -41.0, lng: 174.0 },
|
||||
OM: { lat: 21.0, lng: 57.0 },
|
||||
PA: { lat: 9.0, lng: -80.0 },
|
||||
PE: { lat: -10.0, lng: -76.0 },
|
||||
PG: { lat: -6.0, lng: 147.0 },
|
||||
PH: { lat: 13.0, lng: 122.0 },
|
||||
PK: { lat: 30.0, lng: 70.0 },
|
||||
PL: { lat: 52.0, lng: 20.0 },
|
||||
PR: { lat: 18.3, lng: -66.6 },
|
||||
PS: { lat: 31.9, lng: 35.2 },
|
||||
PT: { lat: 39.5, lng: -8.0 },
|
||||
PW: { lat: 7.5, lng: 134.6 },
|
||||
PY: { lat: -23.0, lng: -58.0 },
|
||||
QA: { lat: 25.5, lng: 51.3 },
|
||||
RO: { lat: 46.0, lng: 25.0 },
|
||||
RS: { lat: 44.0, lng: 21.0 },
|
||||
RU: { lat: 60.0, lng: 100.0 },
|
||||
RW: { lat: -2.0, lng: 29.9 },
|
||||
SA: { lat: 24.0, lng: 45.0 },
|
||||
SB: { lat: -8.0, lng: 159.0 },
|
||||
SC: { lat: -4.7, lng: 55.5 },
|
||||
SD: { lat: 15.0, lng: 30.0 },
|
||||
SE: { lat: 62.0, lng: 15.0 },
|
||||
SG: { lat: 1.4, lng: 103.8 },
|
||||
SI: { lat: 46.1, lng: 15.0 },
|
||||
SK: { lat: 48.7, lng: 19.5 },
|
||||
SL: { lat: 8.5, lng: -11.8 },
|
||||
SM: { lat: 43.9, lng: 12.4 },
|
||||
SN: { lat: 14.5, lng: -14.5 },
|
||||
SO: { lat: 5.0, lng: 46.0 },
|
||||
SR: { lat: 4.0, lng: -56.0 },
|
||||
SS: { lat: 7.0, lng: 30.0 },
|
||||
ST: { lat: 1.0, lng: 7.0 },
|
||||
SV: { lat: 13.8, lng: -88.9 },
|
||||
SY: { lat: 35.0, lng: 38.0 },
|
||||
SZ: { lat: -26.5, lng: 31.5 },
|
||||
TD: { lat: 15.0, lng: 19.0 },
|
||||
TG: { lat: 8.0, lng: 1.2 },
|
||||
TH: { lat: 15.0, lng: 100.0 },
|
||||
TJ: { lat: 39.0, lng: 71.0 },
|
||||
TL: { lat: -8.8, lng: 126.0 },
|
||||
TM: { lat: 40.0, lng: 60.0 },
|
||||
TN: { lat: 34.0, lng: 9.0 },
|
||||
TO: { lat: -20.0, lng: -175.0 },
|
||||
TR: { lat: 39.0, lng: 35.0 },
|
||||
TT: { lat: 10.5, lng: -61.3 },
|
||||
TV: { lat: -8.0, lng: 178.0 },
|
||||
TW: { lat: 23.5, lng: 121.0 },
|
||||
TZ: { lat: -6.0, lng: 35.0 },
|
||||
UA: { lat: 49.0, lng: 32.0 },
|
||||
UG: { lat: 1.0, lng: 32.0 },
|
||||
US: { lat: 39.8, lng: -98.5 },
|
||||
UY: { lat: -33.0, lng: -56.0 },
|
||||
UZ: { lat: 41.0, lng: 64.0 },
|
||||
VA: { lat: 41.9, lng: 12.5 },
|
||||
VC: { lat: 13.3, lng: -61.2 },
|
||||
VE: { lat: 8.0, lng: -66.0 },
|
||||
VN: { lat: 16.0, lng: 108.0 },
|
||||
VU: { lat: -16.0, lng: 167.0 },
|
||||
WS: { lat: -13.8, lng: -172.1 },
|
||||
XK: { lat: 42.6, lng: 21.0 },
|
||||
YE: { lat: 15.0, lng: 48.0 },
|
||||
ZA: { lat: -29.0, lng: 24.0 },
|
||||
ZM: { lat: -15.0, lng: 28.0 },
|
||||
ZW: { lat: -20.0, lng: 30.0 },
|
||||
}
|
||||
Reference in New Issue
Block a user