2024-01-16 21:06:03 -08:00
|
|
|
// Copyright (C) 2023-2024 Shizun Ge
|
2023-02-11 00:05:13 -08:00
|
|
|
//
|
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
// (at your option) any later version.
|
|
|
|
|
//
|
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
|
//
|
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
|
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
//
|
|
|
|
|
|
2024-01-16 21:06:03 -08:00
|
|
|
package geoip
|
2023-02-11 00:05:13 -08:00
|
|
|
|
|
|
|
|
// Map country's ISO to their capital's latitude and longitude.
|
|
|
|
|
// Country's ISO see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
|
2024-01-16 21:06:03 -08:00
|
|
|
type location struct {
|
2023-02-11 00:05:13 -08:00
|
|
|
Latitude float64
|
|
|
|
|
Longitude float64
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-16 21:06:03 -08:00
|
|
|
var countryToLocation = map[string]location{
|
2023-02-11 00:05:13 -08:00
|
|
|
"AD": {42.5, 1.5},
|
|
|
|
|
"AE": {24.4511, 54.3969},
|
|
|
|
|
"AF": {34.5328, 69.1658},
|
|
|
|
|
"AG": {17.1211, -61.8447},
|
|
|
|
|
"AI": {18.2167, -63.05},
|
|
|
|
|
"AL": {41.33, 19.82},
|
|
|
|
|
"AM": {40.1814, 44.5144},
|
|
|
|
|
"AO": {-8.8383, 13.2344},
|
|
|
|
|
"AR": {-34.5997, -58.3819},
|
|
|
|
|
"AS": {-14.274, -170.7046},
|
|
|
|
|
"AT": {48.2083, 16.3725},
|
|
|
|
|
"AU": {-35.2931, 149.1269},
|
|
|
|
|
"AW": {12.5186, -70.0358},
|
|
|
|
|
"AZ": {40.3667, 49.8352},
|
|
|
|
|
"BA": {43.8563, 18.4132},
|
|
|
|
|
"BB": {13.0975, -59.6167},
|
|
|
|
|
"BD": {23.7289, 90.3944},
|
|
|
|
|
"BE": {50.8353, 4.3314},
|
|
|
|
|
"BF": {12.3686, -1.5275},
|
|
|
|
|
"BG": {42.6979, 23.3217},
|
|
|
|
|
"BH": {26.225, 50.5775},
|
|
|
|
|
"BI": {-3.3825, 29.3611},
|
|
|
|
|
"BJ": {6.402, 2.518},
|
|
|
|
|
"BL": {17.8958, -62.8508},
|
|
|
|
|
"BM": {32.2942, -64.7839},
|
|
|
|
|
"BN": {4.9167, 114.9167},
|
|
|
|
|
"BO": {-16.4942, -68.1475},
|
|
|
|
|
"BR": {-15.7939, -47.8828},
|
|
|
|
|
"BS": {25.0667, -77.3333},
|
|
|
|
|
"BT": {27.4833, 89.6333},
|
|
|
|
|
"BW": {-24.6569, 25.9086},
|
|
|
|
|
"BY": {53.9022, 27.5618},
|
|
|
|
|
"BZ": {17.25, -88.7675},
|
|
|
|
|
"CA": {45.4247, -75.695},
|
|
|
|
|
"CD": {-4.3317, 15.3139},
|
|
|
|
|
"CF": {4.3732, 18.5628},
|
|
|
|
|
"CG": {-4.2667, 15.2833},
|
|
|
|
|
"CH": {46.948, 7.4474},
|
|
|
|
|
"CI": {5.3364, -4.0267},
|
|
|
|
|
"CK": {-21.207, -159.771},
|
|
|
|
|
"CL": {-33.45, -70.6667},
|
|
|
|
|
"CM": {3.8578, 11.5181},
|
|
|
|
|
"CN": {39.904, 116.4075},
|
|
|
|
|
"CO": {4.6126, -74.0705},
|
|
|
|
|
"CR": {9.9333, -84.0833},
|
|
|
|
|
"CU": {23.1367, -82.3589},
|
|
|
|
|
"CV": {14.9177, -23.5092},
|
|
|
|
|
"CW": {12.108, -68.935},
|
|
|
|
|
"CX": {-10.4167, 105.7167},
|
|
|
|
|
"CY": {35.1725, 33.365},
|
|
|
|
|
"CZ": {50.0833, 14.4167},
|
|
|
|
|
"DE": {52.5167, 13.3833},
|
|
|
|
|
"DJ": {11.595, 43.1481},
|
|
|
|
|
"DK": {55.6805, 12.5615},
|
|
|
|
|
"DM": {15.3, -61.3833},
|
|
|
|
|
"DO": {18.4764, -69.8933},
|
|
|
|
|
"DZ": {36.7764, 3.0586},
|
|
|
|
|
"EC": {-0.22, -78.5125},
|
|
|
|
|
"EE": {59.4372, 24.745},
|
|
|
|
|
"EG": {30.0444, 31.2358},
|
|
|
|
|
"ER": {15.3333, 38.9167},
|
|
|
|
|
"ES": {40.4167, -3.7167},
|
|
|
|
|
"ET": {9.0272, 38.7369},
|
|
|
|
|
"FI": {60.1756, 24.9342},
|
|
|
|
|
"FJ": {-18.1333, 178.4333},
|
|
|
|
|
"FK": {-51.7, -57.85},
|
|
|
|
|
"FM": {6.9178, 158.185},
|
|
|
|
|
"FO": {62, -6.7833},
|
|
|
|
|
"FR": {48.8566, 2.3522},
|
|
|
|
|
"GA": {0.3901, 9.4544},
|
|
|
|
|
"GB": {51.5072, -0.1275},
|
|
|
|
|
"GD": {12.0444, -61.7417},
|
|
|
|
|
"GE": {41.7225, 44.7925},
|
|
|
|
|
"GF": {4.933, -52.33},
|
|
|
|
|
"GH": {5.6037, -0.187},
|
|
|
|
|
"GI": {36.1324, -5.3781},
|
|
|
|
|
"GL": {64.175, -51.7333},
|
|
|
|
|
"GM": {13.4531, -16.5775},
|
|
|
|
|
"GN": {9.538, -13.6773},
|
|
|
|
|
"GP": {16.0104, -61.7055},
|
|
|
|
|
"GQ": {3.7521, 8.7737},
|
|
|
|
|
"GR": {37.9842, 23.7281},
|
|
|
|
|
"GS": {-54.2833, -36.5},
|
|
|
|
|
"GT": {14.6099, -90.5252},
|
|
|
|
|
"GU": {13.4745, 144.7504},
|
|
|
|
|
"GW": {11.8592, -15.5956},
|
|
|
|
|
"GY": {6.7833, -58.1667},
|
|
|
|
|
"HK": {22.3069, 114.1831},
|
|
|
|
|
"HN": {14.0942, -87.2067},
|
|
|
|
|
"HR": {45.8131, 15.9772},
|
|
|
|
|
"HT": {18.5425, -72.3386},
|
|
|
|
|
"HU": {47.4983, 19.0408},
|
|
|
|
|
"ID": {-6.2146, 106.8451},
|
|
|
|
|
"IE": {53.3497, -6.2603},
|
|
|
|
|
"IL": {31.7833, 35.2167},
|
|
|
|
|
"IM": {54.15, -4.4819},
|
|
|
|
|
"IN": {28.6139, 77.209},
|
|
|
|
|
"IQ": {33.35, 44.4167},
|
|
|
|
|
"IR": {35.7, 51.4167},
|
|
|
|
|
"IS": {64.1475, -21.935},
|
|
|
|
|
"IT": {41.8931, 12.4828},
|
|
|
|
|
"JE": {49.1858, -2.11},
|
|
|
|
|
"JM": {17.9714, -76.7931},
|
|
|
|
|
"JO": {31.95, 35.9333},
|
|
|
|
|
"JP": {35.6839, 139.7744},
|
|
|
|
|
"KE": {-1.2864, 36.8172},
|
|
|
|
|
"KG": {42.8667, 74.5667},
|
|
|
|
|
"KH": {11.5696, 104.921},
|
|
|
|
|
"KI": {1.3382, 173.0176},
|
|
|
|
|
"KM": {-11.7036, 43.2536},
|
|
|
|
|
"KN": {17.2983, -62.7342},
|
|
|
|
|
"KP": {39.03, 125.73},
|
|
|
|
|
"KR": {37.56, 126.99},
|
|
|
|
|
"KW": {29.375, 47.98},
|
|
|
|
|
"KY": {19.2866, -81.3744},
|
|
|
|
|
"KZ": {51.1333, 71.4333},
|
|
|
|
|
"LA": {17.9667, 102.6},
|
|
|
|
|
"LB": {33.8869, 35.5131},
|
|
|
|
|
"LC": {14.0167, -60.9833},
|
|
|
|
|
"LI": {47.1397, 9.5219},
|
|
|
|
|
"LK": {6.9, 79.9164},
|
|
|
|
|
"LR": {6.3106, -10.8047},
|
|
|
|
|
"LS": {-29.31, 27.48},
|
|
|
|
|
"LT": {54.6833, 25.2833},
|
|
|
|
|
"LU": {49.6106, 6.1328},
|
|
|
|
|
"LV": {56.9475, 24.1069},
|
|
|
|
|
"LY": {32.8752, 13.1875},
|
|
|
|
|
"MA": {26.0928, -10.6089},
|
|
|
|
|
"MC": {43.7396, 7.4069},
|
|
|
|
|
"MD": {47.0228, 28.8353},
|
|
|
|
|
"ME": {42.4397, 19.2661},
|
|
|
|
|
"MF": {18.0706, -63.0847},
|
|
|
|
|
"MG": {-18.9386, 47.5214},
|
|
|
|
|
"MH": {7.0918, 171.3802},
|
|
|
|
|
"MK": {41.9833, 21.4333},
|
|
|
|
|
"ML": {12.6458, -7.9922},
|
|
|
|
|
"MM": {16.795, 96.16},
|
|
|
|
|
"MN": {47.9214, 106.9055},
|
|
|
|
|
"MP": {15.2137, 145.7546},
|
|
|
|
|
"MQ": {14.6104, -61.08},
|
|
|
|
|
"MR": {18.0858, -15.9785},
|
|
|
|
|
"MS": {16.7928, -62.2106},
|
|
|
|
|
"MT": {35.8978, 14.5125},
|
|
|
|
|
"MU": {-20.1667, 57.5},
|
|
|
|
|
"MV": {4.175, 73.5083},
|
|
|
|
|
"MW": {-13.9833, 33.7833},
|
|
|
|
|
"MX": {19.4333, -99.1333},
|
|
|
|
|
"MY": {3.1478, 101.6953},
|
|
|
|
|
"MZ": {-25.9153, 32.5764},
|
|
|
|
|
"NA": {-22.57, 17.0836},
|
|
|
|
|
"NC": {-22.2625, 166.4443},
|
|
|
|
|
"NE": {13.5086, 2.1111},
|
|
|
|
|
"NF": {-29.0569, 167.9617},
|
|
|
|
|
"NG": {9.0556, 7.4914},
|
|
|
|
|
"NI": {12.15, -86.2667},
|
|
|
|
|
"NL": {52.08, 4.31},
|
|
|
|
|
"NO": {59.9111, 10.7528},
|
|
|
|
|
"NP": {27.7167, 85.3667},
|
|
|
|
|
"NR": {-0.5477, 166.9209},
|
|
|
|
|
"NU": {-19.056, -169.921},
|
|
|
|
|
"NZ": {-41.2889, 174.7772},
|
|
|
|
|
"OM": {23.6139, 58.5922},
|
|
|
|
|
"PA": {9, -79.5},
|
|
|
|
|
"PE": {-12.06, -77.0375},
|
|
|
|
|
"PF": {-17.5334, -149.5667},
|
|
|
|
|
"PG": {-9.4789, 147.1494},
|
|
|
|
|
"PH": {14.6, 120.9833},
|
|
|
|
|
"PK": {33.6989, 73.0369},
|
|
|
|
|
"PL": {52.23, 21.0111},
|
|
|
|
|
"PM": {46.7811, -56.1764},
|
|
|
|
|
"PN": {-25.0667, -130.0833},
|
|
|
|
|
"PR": {18.4037, -66.0636},
|
|
|
|
|
"PT": {38.708, -9.139},
|
|
|
|
|
"PW": {7.5006, 134.6242},
|
|
|
|
|
"PY": {-25.3, -57.6333},
|
|
|
|
|
"QA": {25.3, 51.5333},
|
|
|
|
|
"RE": {-20.8789, 55.4481},
|
|
|
|
|
"RO": {44.4, 26.0833},
|
|
|
|
|
"RS": {44.8167, 20.4667},
|
|
|
|
|
"RU": {55.7558, 37.6178},
|
|
|
|
|
"RW": {-1.9536, 30.0606},
|
|
|
|
|
"SA": {24.65, 46.71},
|
|
|
|
|
"SB": {-9.4333, 159.95},
|
|
|
|
|
"SC": {-4.6236, 55.4544},
|
|
|
|
|
"SD": {15.6031, 32.5265},
|
|
|
|
|
"SE": {59.3294, 18.0686},
|
|
|
|
|
"SG": {1.3, 103.8},
|
|
|
|
|
"SH": {-15.9251, -5.7179},
|
|
|
|
|
"SI": {46.05, 14.5167},
|
|
|
|
|
"SK": {48.1447, 17.1128},
|
|
|
|
|
"SL": {8.4833, -13.2331},
|
|
|
|
|
"SM": {43.932, 12.4484},
|
|
|
|
|
"SN": {14.7319, -17.4572},
|
|
|
|
|
"SO": {2.0408, 45.3425},
|
|
|
|
|
"SR": {5.8667, -55.1667},
|
|
|
|
|
"SS": {4.85, 31.6},
|
|
|
|
|
"ST": {0.3333, 6.7333},
|
|
|
|
|
"SV": {13.6989, -89.1914},
|
|
|
|
|
"SX": {18.0256, -63.0492},
|
|
|
|
|
"SY": {33.5131, 36.2919},
|
|
|
|
|
"SZ": {-26.3208, 31.1617},
|
|
|
|
|
"TC": {21.4664, -71.136},
|
|
|
|
|
"TD": {12.11, 15.05},
|
|
|
|
|
"TG": {6.1319, 1.2228},
|
|
|
|
|
"TH": {13.75, 100.5167},
|
|
|
|
|
"TJ": {38.5731, 68.7864},
|
|
|
|
|
"TL": {-8.5536, 125.5783},
|
|
|
|
|
"TM": {37.95, 58.3833},
|
|
|
|
|
"TN": {36.8008, 10.18},
|
|
|
|
|
"TO": {-21.1347, -175.2083},
|
|
|
|
|
"TR": {39.93, 32.85},
|
|
|
|
|
"TT": {10.6667, -61.5167},
|
|
|
|
|
"TV": {-8.5243, 179.1942},
|
|
|
|
|
"TZ": {-6.8, 39.2833},
|
|
|
|
|
"UA": {50.45, 30.5236},
|
|
|
|
|
"UG": {0.3136, 32.5811},
|
|
|
|
|
"US": {38.9047, -77.0163},
|
|
|
|
|
"UY": {-34.8667, -56.1667},
|
|
|
|
|
"UZ": {41.3, 69.2667},
|
|
|
|
|
"VA": {41.9033, 12.4534},
|
|
|
|
|
"VC": {13.1667, -61.2333},
|
|
|
|
|
"VE": {10.5, -66.9333},
|
|
|
|
|
"VG": {18.4167, -64.6167},
|
|
|
|
|
"VI": {18.3419, -64.9332},
|
|
|
|
|
"VN": {21.0245, 105.8412},
|
|
|
|
|
"VU": {-17.7333, 168.3167},
|
|
|
|
|
"WF": {-13.2825, -176.1736},
|
|
|
|
|
"WS": {-13.8333, -171.8333},
|
|
|
|
|
"XG": {31.5069, 34.456},
|
|
|
|
|
"XK": {42.6633, 21.1622},
|
|
|
|
|
"XR": {78.2167, 15.6333},
|
|
|
|
|
"XW": {31.7764, 35.2269},
|
|
|
|
|
"YE": {15.35, 44.2},
|
|
|
|
|
"YT": {-12.7871, 45.275},
|
|
|
|
|
"ZA": {-25.7464, 28.1881},
|
|
|
|
|
"ZM": {-15.4167, 28.2833},
|
|
|
|
|
"ZW": {-17.8292, 31.0522},
|
|
|
|
|
}
|