Skip to main content
Glama
world_cities.py28.3 kB
"""World cities database for satellite access window calculations. This module contains a comprehensive database of world cities including capitals and major metropolitan areas with their geographic coordinates and elevations. """ from typing import Dict, List, Optional import json # Comprehensive world cities database WORLD_CITIES = { # North America - USA "new york": {"name": "New York", "country": "USA", "latitude": 40.7128, "longitude": -74.0060, "altitude": 10, "type": "major_city"}, "los angeles": {"name": "Los Angeles", "country": "USA", "latitude": 34.0522, "longitude": -118.2437, "altitude": 71, "type": "major_city"}, "chicago": {"name": "Chicago", "country": "USA", "latitude": 41.8781, "longitude": -87.6298, "altitude": 181, "type": "major_city"}, "houston": {"name": "Houston", "country": "USA", "latitude": 29.7604, "longitude": -95.3698, "altitude": 13, "type": "major_city"}, "washington": {"name": "Washington D.C.", "country": "USA", "latitude": 38.9072, "longitude": -77.0369, "altitude": 8, "type": "capital"}, "washington dc": {"name": "Washington D.C.", "country": "USA", "latitude": 38.9072, "longitude": -77.0369, "altitude": 8, "type": "capital"}, "boston": {"name": "Boston", "country": "USA", "latitude": 42.3601, "longitude": -71.0589, "altitude": 43, "type": "major_city"}, "san francisco": {"name": "San Francisco", "country": "USA", "latitude": 37.7749, "longitude": -122.4194, "altitude": 16, "type": "major_city"}, "seattle": {"name": "Seattle", "country": "USA", "latitude": 47.6062, "longitude": -122.3321, "altitude": 56, "type": "major_city"}, "miami": {"name": "Miami", "country": "USA", "latitude": 25.7617, "longitude": -80.1918, "altitude": 2, "type": "major_city"}, "denver": {"name": "Denver", "country": "USA", "latitude": 39.7392, "longitude": -104.9903, "altitude": 1609, "type": "major_city"}, "atlanta": {"name": "Atlanta", "country": "USA", "latitude": 33.7490, "longitude": -84.3880, "altitude": 320, "type": "major_city"}, # North America - Canada "ottawa": {"name": "Ottawa", "country": "Canada", "latitude": 45.4215, "longitude": -75.6972, "altitude": 70, "type": "capital"}, "toronto": {"name": "Toronto", "country": "Canada", "latitude": 43.6532, "longitude": -79.3832, "altitude": 76, "type": "major_city"}, "vancouver": {"name": "Vancouver", "country": "Canada", "latitude": 49.2827, "longitude": -123.1207, "altitude": 70, "type": "major_city"}, "montreal": {"name": "Montreal", "country": "Canada", "latitude": 45.5017, "longitude": -73.5673, "altitude": 233, "type": "major_city"}, "calgary": {"name": "Calgary", "country": "Canada", "latitude": 51.0447, "longitude": -114.0719, "altitude": 1048, "type": "major_city"}, # North America - Mexico "mexico city": {"name": "Mexico City", "country": "Mexico", "latitude": 19.4326, "longitude": -99.1332, "altitude": 2240, "type": "capital"}, # South America "buenos aires": {"name": "Buenos Aires", "country": "Argentina", "latitude": -34.6037, "longitude": -58.3816, "altitude": 25, "type": "capital"}, "brasilia": {"name": "Brasília", "country": "Brazil", "latitude": -15.8267, "longitude": -47.9218, "altitude": 1172, "type": "capital"}, "brasília": {"name": "Brasília", "country": "Brazil", "latitude": -15.8267, "longitude": -47.9218, "altitude": 1172, "type": "capital"}, "sao paulo": {"name": "São Paulo", "country": "Brazil", "latitude": -23.5505, "longitude": -46.6333, "altitude": 760, "type": "major_city"}, "são paulo": {"name": "São Paulo", "country": "Brazil", "latitude": -23.5505, "longitude": -46.6333, "altitude": 760, "type": "major_city"}, "rio de janeiro": {"name": "Rio de Janeiro", "country": "Brazil", "latitude": -22.9068, "longitude": -43.1729, "altitude": 2, "type": "major_city"}, "lima": {"name": "Lima", "country": "Peru", "latitude": -12.0464, "longitude": -77.0428, "altitude": 154, "type": "capital"}, "bogota": {"name": "Bogotá", "country": "Colombia", "latitude": 4.7110, "longitude": -74.0721, "altitude": 2625, "type": "capital"}, "bogotá": {"name": "Bogotá", "country": "Colombia", "latitude": 4.7110, "longitude": -74.0721, "altitude": 2625, "type": "capital"}, "caracas": {"name": "Caracas", "country": "Venezuela", "latitude": 10.4806, "longitude": -66.9036, "altitude": 900, "type": "capital"}, "santiago": {"name": "Santiago", "country": "Chile", "latitude": -33.4489, "longitude": -70.6693, "altitude": 520, "type": "capital"}, "quito": {"name": "Quito", "country": "Ecuador", "latitude": -0.1807, "longitude": -78.4678, "altitude": 2850, "type": "capital"}, "la paz": {"name": "La Paz", "country": "Bolivia", "latitude": -16.5000, "longitude": -68.1193, "altitude": 3500, "type": "capital"}, # Europe - Western "london": {"name": "London", "country": "UK", "latitude": 51.5074, "longitude": -0.1278, "altitude": 11, "type": "capital"}, "paris": {"name": "Paris", "country": "France", "latitude": 48.8566, "longitude": 2.3522, "altitude": 35, "type": "capital"}, "berlin": {"name": "Berlin", "country": "Germany", "latitude": 52.5200, "longitude": 13.4050, "altitude": 34, "type": "capital"}, "madrid": {"name": "Madrid", "country": "Spain", "latitude": 40.4168, "longitude": -3.7038, "altitude": 650, "type": "capital"}, "rome": {"name": "Rome", "country": "Italy", "latitude": 41.9028, "longitude": 12.4964, "altitude": 21, "type": "capital"}, "amsterdam": {"name": "Amsterdam", "country": "Netherlands", "latitude": 52.3676, "longitude": 4.9041, "altitude": -2, "type": "capital"}, "brussels": {"name": "Brussels", "country": "Belgium", "latitude": 50.8503, "longitude": 4.3517, "altitude": 56, "type": "capital"}, "vienna": {"name": "Vienna", "country": "Austria", "latitude": 48.2082, "longitude": 16.3738, "altitude": 171, "type": "capital"}, "zurich": {"name": "Zurich", "country": "Switzerland", "latitude": 47.3769, "longitude": 8.5417, "altitude": 408, "type": "major_city"}, "bern": {"name": "Bern", "country": "Switzerland", "latitude": 46.9480, "longitude": 7.4474, "altitude": 540, "type": "capital"}, "lisbon": {"name": "Lisbon", "country": "Portugal", "latitude": 38.7223, "longitude": -9.1393, "altitude": 2, "type": "capital"}, "dublin": {"name": "Dublin", "country": "Ireland", "latitude": 53.3498, "longitude": -6.2603, "altitude": 20, "type": "capital"}, "copenhagen": {"name": "Copenhagen", "country": "Denmark", "latitude": 55.6761, "longitude": 12.5683, "altitude": 24, "type": "capital"}, "stockholm": {"name": "Stockholm", "country": "Sweden", "latitude": 59.3293, "longitude": 18.0686, "altitude": 28, "type": "capital"}, "oslo": {"name": "Oslo", "country": "Norway", "latitude": 59.9139, "longitude": 10.7522, "altitude": 23, "type": "capital"}, "helsinki": {"name": "Helsinki", "country": "Finland", "latitude": 60.1699, "longitude": 24.9384, "altitude": 26, "type": "capital"}, # Europe - Eastern "moscow": {"name": "Moscow", "country": "Russia", "latitude": 55.7558, "longitude": 37.6176, "altitude": 156, "type": "capital"}, "st petersburg": {"name": "St. Petersburg", "country": "Russia", "latitude": 59.9311, "longitude": 30.3609, "altitude": 3, "type": "major_city"}, "warsaw": {"name": "Warsaw", "country": "Poland", "latitude": 52.2297, "longitude": 21.0122, "altitude": 113, "type": "capital"}, "prague": {"name": "Prague", "country": "Czech Republic", "latitude": 50.0755, "longitude": 14.4378, "altitude": 200, "type": "capital"}, "budapest": {"name": "Budapest", "country": "Hungary", "latitude": 47.4979, "longitude": 19.0402, "altitude": 102, "type": "capital"}, "bucharest": {"name": "Bucharest", "country": "Romania", "latitude": 44.4268, "longitude": 26.1025, "altitude": 90, "type": "capital"}, "kiev": {"name": "Kiev", "country": "Ukraine", "latitude": 50.4501, "longitude": 30.5234, "altitude": 179, "type": "capital"}, "kyiv": {"name": "Kyiv", "country": "Ukraine", "latitude": 50.4501, "longitude": 30.5234, "altitude": 179, "type": "capital"}, "zagreb": {"name": "Zagreb", "country": "Croatia", "latitude": 45.8150, "longitude": 15.9819, "altitude": 158, "type": "capital"}, "belgrade": {"name": "Belgrade", "country": "Serbia", "latitude": 44.7866, "longitude": 20.4489, "altitude": 117, "type": "capital"}, "sofia": {"name": "Sofia", "country": "Bulgaria", "latitude": 42.6977, "longitude": 23.3219, "altitude": 550, "type": "capital"}, "athens": {"name": "Athens", "country": "Greece", "latitude": 37.9838, "longitude": 23.7275, "altitude": 170, "type": "capital"}, # Asia - East "beijing": {"name": "Beijing", "country": "China", "latitude": 39.9042, "longitude": 116.4074, "altitude": 43, "type": "capital"}, "shanghai": {"name": "Shanghai", "country": "China", "latitude": 31.2304, "longitude": 121.4737, "altitude": 4, "type": "major_city"}, "hong kong": {"name": "Hong Kong", "country": "Hong Kong", "latitude": 22.3193, "longitude": 114.1694, "altitude": 8, "type": "major_city"}, "tokyo": {"name": "Tokyo", "country": "Japan", "latitude": 35.6762, "longitude": 139.6503, "altitude": 6, "type": "capital"}, "osaka": {"name": "Osaka", "country": "Japan", "latitude": 34.6937, "longitude": 135.5023, "altitude": 5, "type": "major_city"}, "seoul": {"name": "Seoul", "country": "South Korea", "latitude": 37.5665, "longitude": 126.9780, "altitude": 38, "type": "capital"}, "taipei": {"name": "Taipei", "country": "Taiwan", "latitude": 25.0330, "longitude": 121.5654, "altitude": 9, "type": "capital"}, "pyongyang": {"name": "Pyongyang", "country": "North Korea", "latitude": 39.0392, "longitude": 125.7625, "altitude": 38, "type": "capital"}, "ulaanbaatar": {"name": "Ulaanbaatar", "country": "Mongolia", "latitude": 47.8864, "longitude": 106.9057, "altitude": 1350, "type": "capital"}, # Asia - Southeast "singapore": {"name": "Singapore", "country": "Singapore", "latitude": 1.3521, "longitude": 103.8198, "altitude": 15, "type": "capital"}, "bangkok": {"name": "Bangkok", "country": "Thailand", "latitude": 13.7563, "longitude": 100.5018, "altitude": 1, "type": "capital"}, "kuala lumpur": {"name": "Kuala Lumpur", "country": "Malaysia", "latitude": 3.1390, "longitude": 101.6869, "altitude": 22, "type": "capital"}, "jakarta": {"name": "Jakarta", "country": "Indonesia", "latitude": -6.2088, "longitude": 106.8456, "altitude": 8, "type": "capital"}, "manila": {"name": "Manila", "country": "Philippines", "latitude": 14.5995, "longitude": 120.9842, "altitude": 16, "type": "capital"}, "hanoi": {"name": "Hanoi", "country": "Vietnam", "latitude": 21.0285, "longitude": 105.8542, "altitude": 6, "type": "capital"}, "ho chi minh city": {"name": "Ho Chi Minh City", "country": "Vietnam", "latitude": 10.8231, "longitude": 106.6297, "altitude": 5, "type": "major_city"}, "phnom penh": {"name": "Phnom Penh", "country": "Cambodia", "latitude": 11.5564, "longitude": 104.9282, "altitude": 12, "type": "capital"}, "vientiane": {"name": "Vientiane", "country": "Laos", "latitude": 17.9757, "longitude": 102.6331, "altitude": 174, "type": "capital"}, "yangon": {"name": "Yangon", "country": "Myanmar", "latitude": 16.8661, "longitude": 96.1951, "altitude": 25, "type": "major_city"}, "naypyidaw": {"name": "Naypyidaw", "country": "Myanmar", "latitude": 19.7633, "longitude": 96.0785, "altitude": 115, "type": "capital"}, "bandar seri begawan": {"name": "Bandar Seri Begawan", "country": "Brunei", "latitude": 4.9031, "longitude": 114.9398, "altitude": 1, "type": "capital"}, # Asia - South "new delhi": {"name": "New Delhi", "country": "India", "latitude": 28.6139, "longitude": 77.2090, "altitude": 216, "type": "capital"}, "delhi": {"name": "Delhi", "country": "India", "latitude": 28.7041, "longitude": 77.1025, "altitude": 200, "type": "major_city"}, "mumbai": {"name": "Mumbai", "country": "India", "latitude": 19.0760, "longitude": 72.8777, "altitude": 14, "type": "major_city"}, "bangalore": {"name": "Bangalore", "country": "India", "latitude": 12.9716, "longitude": 77.5946, "altitude": 920, "type": "major_city"}, "chennai": {"name": "Chennai", "country": "India", "latitude": 13.0827, "longitude": 80.2707, "altitude": 6, "type": "major_city"}, "kolkata": {"name": "Kolkata", "country": "India", "latitude": 22.5726, "longitude": 88.3639, "altitude": 9, "type": "major_city"}, "hyderabad": {"name": "Hyderabad", "country": "India", "latitude": 17.3850, "longitude": 78.4867, "altitude": 542, "type": "major_city"}, "islamabad": {"name": "Islamabad", "country": "Pakistan", "latitude": 33.6844, "longitude": 73.0479, "altitude": 507, "type": "capital"}, "karachi": {"name": "Karachi", "country": "Pakistan", "latitude": 24.8607, "longitude": 67.0011, "altitude": 8, "type": "major_city"}, "lahore": {"name": "Lahore", "country": "Pakistan", "latitude": 31.5204, "longitude": 74.3587, "altitude": 217, "type": "major_city"}, "dhaka": {"name": "Dhaka", "country": "Bangladesh", "latitude": 23.8103, "longitude": 90.4125, "altitude": 8, "type": "capital"}, "colombo": {"name": "Colombo", "country": "Sri Lanka", "latitude": 6.9271, "longitude": 79.8612, "altitude": 1, "type": "capital"}, "kathmandu": {"name": "Kathmandu", "country": "Nepal", "latitude": 27.7172, "longitude": 85.3240, "altitude": 1400, "type": "capital"}, "thimphu": {"name": "Thimphu", "country": "Bhutan", "latitude": 27.4728, "longitude": 89.6390, "altitude": 2320, "type": "capital"}, "male": {"name": "Malé", "country": "Maldives", "latitude": 4.1755, "longitude": 73.5093, "altitude": 1, "type": "capital"}, "kabul": {"name": "Kabul", "country": "Afghanistan", "latitude": 34.5553, "longitude": 69.2075, "altitude": 1790, "type": "capital"}, # Asia - Central & Western "tashkent": {"name": "Tashkent", "country": "Uzbekistan", "latitude": 41.2995, "longitude": 69.2401, "altitude": 455, "type": "capital"}, "almaty": {"name": "Almaty", "country": "Kazakhstan", "latitude": 43.2220, "longitude": 76.8512, "altitude": 682, "type": "major_city"}, "nur-sultan": {"name": "Nur-Sultan", "country": "Kazakhstan", "latitude": 51.1605, "longitude": 71.4704, "altitude": 347, "type": "capital"}, "astana": {"name": "Astana", "country": "Kazakhstan", "latitude": 51.1605, "longitude": 71.4704, "altitude": 347, "type": "capital"}, "bishkek": {"name": "Bishkek", "country": "Kyrgyzstan", "latitude": 42.8746, "longitude": 74.5698, "altitude": 800, "type": "capital"}, "dushanbe": {"name": "Dushanbe", "country": "Tajikistan", "latitude": 38.5598, "longitude": 68.7870, "altitude": 750, "type": "capital"}, "ashgabat": {"name": "Ashgabat", "country": "Turkmenistan", "latitude": 37.9601, "longitude": 58.3261, "altitude": 219, "type": "capital"}, "tehran": {"name": "Tehran", "country": "Iran", "latitude": 35.6892, "longitude": 51.3890, "altitude": 1190, "type": "capital"}, "baghdad": {"name": "Baghdad", "country": "Iraq", "latitude": 33.3152, "longitude": 44.3661, "altitude": 34, "type": "capital"}, "damascus": {"name": "Damascus", "country": "Syria", "latitude": 33.5138, "longitude": 36.2765, "altitude": 680, "type": "capital"}, "beirut": {"name": "Beirut", "country": "Lebanon", "latitude": 33.8938, "longitude": 35.5018, "altitude": 56, "type": "capital"}, "amman": {"name": "Amman", "country": "Jordan", "latitude": 31.9454, "longitude": 35.9284, "altitude": 757, "type": "capital"}, "jerusalem": {"name": "Jerusalem", "country": "Israel", "latitude": 31.7683, "longitude": 35.2137, "altitude": 754, "type": "capital"}, "tel aviv": {"name": "Tel Aviv", "country": "Israel", "latitude": 32.0853, "longitude": 34.7818, "altitude": 5, "type": "major_city"}, "ankara": {"name": "Ankara", "country": "Turkey", "latitude": 39.9334, "longitude": 32.8597, "altitude": 938, "type": "capital"}, "istanbul": {"name": "Istanbul", "country": "Turkey", "latitude": 41.0082, "longitude": 28.9784, "altitude": 39, "type": "major_city"}, "riyadh": {"name": "Riyadh", "country": "Saudi Arabia", "latitude": 24.7136, "longitude": 46.6753, "altitude": 612, "type": "capital"}, "dubai": {"name": "Dubai", "country": "UAE", "latitude": 25.2048, "longitude": 55.2708, "altitude": 5, "type": "major_city"}, "abu dhabi": {"name": "Abu Dhabi", "country": "UAE", "latitude": 24.2532, "longitude": 54.3665, "altitude": 5, "type": "capital"}, "doha": {"name": "Doha", "country": "Qatar", "latitude": 25.2854, "longitude": 51.5310, "altitude": 10, "type": "capital"}, "kuwait city": {"name": "Kuwait City", "country": "Kuwait", "latitude": 29.3759, "longitude": 47.9774, "altitude": 55, "type": "capital"}, "manama": {"name": "Manama", "country": "Bahrain", "latitude": 26.0667, "longitude": 50.5577, "altitude": 2, "type": "capital"}, "muscat": {"name": "Muscat", "country": "Oman", "latitude": 23.5859, "longitude": 58.4059, "altitude": 48, "type": "capital"}, "sanaa": {"name": "Sana'a", "country": "Yemen", "latitude": 15.3694, "longitude": 44.1910, "altitude": 2250, "type": "capital"}, "yerevan": {"name": "Yerevan", "country": "Armenia", "latitude": 40.1792, "longitude": 44.4991, "altitude": 1022, "type": "capital"}, "baku": {"name": "Baku", "country": "Azerbaijan", "latitude": 40.4093, "longitude": 49.8671, "altitude": -25, "type": "capital"}, "tbilisi": {"name": "Tbilisi", "country": "Georgia", "latitude": 41.7151, "longitude": 44.8271, "altitude": 490, "type": "capital"}, # Africa - Northern "cairo": {"name": "Cairo", "country": "Egypt", "latitude": 30.0444, "longitude": 31.2357, "altitude": 74, "type": "capital"}, "alexandria": {"name": "Alexandria", "country": "Egypt", "latitude": 31.2001, "longitude": 29.9187, "altitude": 12, "type": "major_city"}, "algiers": {"name": "Algiers", "country": "Algeria", "latitude": 36.7538, "longitude": 3.0588, "altitude": 424, "type": "capital"}, "tunis": {"name": "Tunis", "country": "Tunisia", "latitude": 36.8065, "longitude": 10.1815, "altitude": 4, "type": "capital"}, "tripoli": {"name": "Tripoli", "country": "Libya", "latitude": 32.8872, "longitude": 13.1913, "altitude": 81, "type": "capital"}, "rabat": {"name": "Rabat", "country": "Morocco", "latitude": 34.0209, "longitude": -6.8416, "altitude": 135, "type": "capital"}, "casablanca": {"name": "Casablanca", "country": "Morocco", "latitude": 33.5731, "longitude": -7.5898, "altitude": 50, "type": "major_city"}, "khartoum": {"name": "Khartoum", "country": "Sudan", "latitude": 15.5007, "longitude": 32.5599, "altitude": 382, "type": "capital"}, # Africa - Sub-Saharan "lagos": {"name": "Lagos", "country": "Nigeria", "latitude": 6.5244, "longitude": 3.3792, "altitude": 39, "type": "major_city"}, "abuja": {"name": "Abuja", "country": "Nigeria", "latitude": 9.0579, "longitude": 7.4951, "altitude": 840, "type": "capital"}, "cape town": {"name": "Cape Town", "country": "South Africa", "latitude": -33.9249, "longitude": 18.4241, "altitude": 25, "type": "major_city"}, "johannesburg": {"name": "Johannesburg", "country": "South Africa", "latitude": -26.2041, "longitude": 28.0473, "altitude": 1753, "type": "major_city"}, "pretoria": {"name": "Pretoria", "country": "South Africa", "latitude": -25.7479, "longitude": 28.2293, "altitude": 1339, "type": "capital"}, "nairobi": {"name": "Nairobi", "country": "Kenya", "latitude": -1.2921, "longitude": 36.8219, "altitude": 1795, "type": "capital"}, "addis ababa": {"name": "Addis Ababa", "country": "Ethiopia", "latitude": 9.1450, "longitude": 40.4897, "altitude": 2355, "type": "capital"}, "dar es salaam": {"name": "Dar es Salaam", "country": "Tanzania", "latitude": -6.7924, "longitude": 39.2083, "altitude": 48, "type": "major_city"}, "dodoma": {"name": "Dodoma", "country": "Tanzania", "latitude": -6.1630, "longitude": 35.7516, "altitude": 1120, "type": "capital"}, "kampala": {"name": "Kampala", "country": "Uganda", "latitude": 0.3476, "longitude": 32.5825, "altitude": 1190, "type": "capital"}, "kigali": {"name": "Kigali", "country": "Rwanda", "latitude": -1.9706, "longitude": 30.1044, "altitude": 1567, "type": "capital"}, "bujumbura": {"name": "Bujumbura", "country": "Burundi", "latitude": -3.3614, "longitude": 29.3599, "altitude": 782, "type": "capital"}, "kinshasa": {"name": "Kinshasa", "country": "DR Congo", "latitude": -4.4419, "longitude": 15.2663, "altitude": 240, "type": "capital"}, "brazzaville": {"name": "Brazzaville", "country": "Congo", "latitude": -4.2634, "longitude": 15.2429, "altitude": 314, "type": "capital"}, "libreville": {"name": "Libreville", "country": "Gabon", "latitude": 0.4162, "longitude": 9.4673, "altitude": 9, "type": "capital"}, "yaounde": {"name": "Yaoundé", "country": "Cameroon", "latitude": 3.8480, "longitude": 11.5021, "altitude": 726, "type": "capital"}, "accra": {"name": "Accra", "country": "Ghana", "latitude": 5.6037, "longitude": -0.1870, "altitude": 61, "type": "capital"}, "abidjan": {"name": "Abidjan", "country": "Ivory Coast", "latitude": 5.3600, "longitude": -4.0083, "altitude": 76, "type": "major_city"}, "yamoussoukro": {"name": "Yamoussoukro", "country": "Ivory Coast", "latitude": 6.8276, "longitude": -5.2893, "altitude": 213, "type": "capital"}, "dakar": {"name": "Dakar", "country": "Senegal", "latitude": 14.7167, "longitude": -17.4677, "altitude": 22, "type": "capital"}, "bamako": {"name": "Bamako", "country": "Mali", "latitude": 12.6392, "longitude": -8.0029, "altitude": 381, "type": "capital"}, "ouagadougou": {"name": "Ouagadougou", "country": "Burkina Faso", "latitude": 12.3714, "longitude": -1.5197, "altitude": 306, "type": "capital"}, "niamey": {"name": "Niamey", "country": "Niger", "latitude": 13.5116, "longitude": 2.1254, "altitude": 207, "type": "capital"}, "ndjamena": {"name": "N'Djamena", "country": "Chad", "latitude": 12.1348, "longitude": 15.0557, "altitude": 298, "type": "capital"}, "luanda": {"name": "Luanda", "country": "Angola", "latitude": -8.8383, "longitude": 13.2344, "altitude": 6, "type": "capital"}, "windhoek": {"name": "Windhoek", "country": "Namibia", "latitude": -22.5609, "longitude": 17.0658, "altitude": 1728, "type": "capital"}, "gaborone": {"name": "Gaborone", "country": "Botswana", "latitude": -24.6282, "longitude": 25.9231, "altitude": 1014, "type": "capital"}, "harare": {"name": "Harare", "country": "Zimbabwe", "latitude": -17.8252, "longitude": 31.0335, "altitude": 1483, "type": "capital"}, "lusaka": {"name": "Lusaka", "country": "Zambia", "latitude": -15.3875, "longitude": 28.3228, "altitude": 1279, "type": "capital"}, "lilongwe": {"name": "Lilongwe", "country": "Malawi", "latitude": -13.9626, "longitude": 33.7741, "altitude": 1050, "type": "capital"}, "maputo": {"name": "Maputo", "country": "Mozambique", "latitude": -25.9692, "longitude": 32.5732, "altitude": 47, "type": "capital"}, "antananarivo": {"name": "Antananarivo", "country": "Madagascar", "latitude": -18.8792, "longitude": 47.5079, "altitude": 1276, "type": "capital"}, "port louis": {"name": "Port Louis", "country": "Mauritius", "latitude": -20.1609, "longitude": 57.5012, "altitude": 5, "type": "capital"}, "victoria": {"name": "Victoria", "country": "Seychelles", "latitude": -4.6796, "longitude": 55.4920, "altitude": 3, "type": "capital"}, # Oceania "canberra": {"name": "Canberra", "country": "Australia", "latitude": -35.2809, "longitude": 149.1300, "altitude": 577, "type": "capital"}, "sydney": {"name": "Sydney", "country": "Australia", "latitude": -33.8688, "longitude": 151.2093, "altitude": 3, "type": "major_city"}, "melbourne": {"name": "Melbourne", "country": "Australia", "latitude": -37.8136, "longitude": 144.9631, "altitude": 31, "type": "major_city"}, "brisbane": {"name": "Brisbane", "country": "Australia", "latitude": -27.4698, "longitude": 153.0251, "altitude": 27, "type": "major_city"}, "perth": {"name": "Perth", "country": "Australia", "latitude": -31.9505, "longitude": 115.8605, "altitude": 46, "type": "major_city"}, "adelaide": {"name": "Adelaide", "country": "Australia", "latitude": -34.9285, "longitude": 138.6007, "altitude": 50, "type": "major_city"}, "wellington": {"name": "Wellington", "country": "New Zealand", "latitude": -41.2865, "longitude": 174.7762, "altitude": 31, "type": "capital"}, "auckland": {"name": "Auckland", "country": "New Zealand", "latitude": -36.8485, "longitude": 174.7633, "altitude": 10, "type": "major_city"}, "suva": {"name": "Suva", "country": "Fiji", "latitude": -18.1248, "longitude": 178.4501, "altitude": 1, "type": "capital"}, "port moresby": {"name": "Port Moresby", "country": "Papua New Guinea", "latitude": -9.4438, "longitude": 147.1803, "altitude": 35, "type": "capital"}, "nuku'alofa": {"name": "Nuku'alofa", "country": "Tonga", "latitude": -21.1789, "longitude": -175.1982, "altitude": 1, "type": "capital"}, "apia": {"name": "Apia", "country": "Samoa", "latitude": -13.8506, "longitude": -171.7513, "altitude": 2, "type": "capital"}, "port vila": {"name": "Port Vila", "country": "Vanuatu", "latitude": -17.7334, "longitude": 168.3273, "altitude": 1, "type": "capital"}, "honiara": {"name": "Honiara", "country": "Solomon Islands", "latitude": -9.4280, "longitude": 159.9729, "altitude": 8, "type": "capital"}, "palikir": {"name": "Palikir", "country": "Micronesia", "latitude": 6.9248, "longitude": 158.1611, "altitude": 92, "type": "capital"}, "majuro": {"name": "Majuro", "country": "Marshall Islands", "latitude": 7.1315, "longitude": 171.1845, "altitude": 3, "type": "capital"}, "ngerulmud": {"name": "Ngerulmud", "country": "Palau", "latitude": 7.5006, "longitude": 134.6242, "altitude": 65, "type": "capital"}, "funafuti": {"name": "Funafuti", "country": "Tuvalu", "latitude": -8.5243, "longitude": 179.1942, "altitude": 2, "type": "capital"}, "tarawa": {"name": "Tarawa", "country": "Kiribati", "latitude": 1.4518, "longitude": 172.9717, "altitude": 3, "type": "capital"}, "yaren": {"name": "Yaren", "country": "Nauru", "latitude": -0.5477, "longitude": 166.9209, "altitude": 30, "type": "capital"}, } def get_city_by_name(city_name: str) -> Optional[Dict]: """ Look up a city by name (case-insensitive). Args: city_name: Name of the city to look up Returns: Dictionary with city information if found, None otherwise """ return WORLD_CITIES.get(city_name.lower().strip()) def search_cities(query: str, limit: int = 10) -> List[Dict]: """ Search for cities that match a query string. Args: query: Search query (case-insensitive) limit: Maximum number of results to return Returns: List of matching city dictionaries """ query = query.lower().strip() matches = [] for key, city_info in WORLD_CITIES.items(): if query in key or query in city_info["name"].lower() or query in city_info["country"].lower(): matches.append(city_info) if len(matches) >= limit: break return matches def get_all_cities() -> Dict[str, Dict]: """Return the complete cities database.""" return WORLD_CITIES def get_cities_by_country(country: str) -> List[Dict]: """ Get all cities for a specific country. Args: country: Country name or code Returns: List of city dictionaries for the country """ country = country.lower().strip() return [city_info for city_info in WORLD_CITIES.values() if country in city_info["country"].lower()] def get_capitals() -> List[Dict]: """Get all capital cities.""" return [city_info for city_info in WORLD_CITIES.values() if city_info["type"] == "capital"] def get_major_cities() -> List[Dict]: """Get all major cities (non-capitals).""" return [city_info for city_info in WORLD_CITIES.values() if city_info["type"] == "major_city"] # Export the lookup function for easy access lookup_city = get_city_by_name

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BuildASpacePro/Orbit-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server