Update geo_data.py
هذا الالتزام موجود في:
79
geo_data.py
79
geo_data.py
@@ -1,56 +1,27 @@
|
|||||||
"""Arab World Geo Data - بيانات جغرافية للوطن العربي"""
|
ARAB=[
|
||||||
|
{'name':'Saudi Arabia','capital':'Riyadh','lat':24.71,'lng':46.68,'pop':35.0},
|
||||||
|
{'name':'UAE','capital':'Abu Dhabi','lat':24.45,'lng':54.38,'pop':9.4},
|
||||||
|
{'name':'Egypt','capital':'Cairo','lat':30.04,'lng':31.24,'pop':109.0},
|
||||||
|
{'name':'Iraq','capital':'Baghdad','lat':33.32,'lng':44.37,'pop':43.5},
|
||||||
|
{'name':'Jordan','capital':'Amman','lat':31.95,'lng':35.93,'pop':11.1},
|
||||||
|
{'name':'Palestine','capital':'Jerusalem','lat':31.77,'lng':35.21,'pop':5.4},
|
||||||
|
{'name':'Morocco','capital':'Rabat','lat':34.02,'lng':-6.84,'pop':37.0},
|
||||||
|
{'name':'Algeria','capital':'Algiers','lat':36.75,'lng':3.06,'pop':44.0},
|
||||||
|
{'name':'Sudan','capital':'Khartoum','lat':15.50,'lng':32.56,'pop':46.0},
|
||||||
|
{'name':'Yemen','capital':'Sanaa','lat':15.37,'lng':44.19,'pop':33.0},
|
||||||
|
{'name':'Syria','capital':'Damascus','lat':33.51,'lng':36.28,'pop':22.0},
|
||||||
|
{'name':'Lebanon','capital':'Beirut','lat':33.89,'lng':35.50,'pop':5.5},
|
||||||
|
{'name':'Tunisia','capital':'Tunis','lat':36.81,'lng':10.18,'pop':12.0},
|
||||||
|
{'name':'Libya','capital':'Tripoli','lat':32.89,'lng':13.19,'pop':6.8},
|
||||||
|
{'name':'Oman','capital':'Muscat','lat':23.59,'lng':58.38,'pop':4.5},
|
||||||
|
{'name':'Kuwait','capital':'Kuwait City','lat':29.38,'lng':47.98,'pop':4.3},
|
||||||
|
{'name':'Qatar','capital':'Doha','lat':25.29,'lng':51.53,'pop':2.9},
|
||||||
|
{'name':'Bahrain','capital':'Manama','lat':26.22,'lng':50.59,'pop':1.5},
|
||||||
|
{'name':'Somalia','capital':'Mogadishu','lat':2.05,'lng':45.32,'pop':17.0},
|
||||||
|
{'name':'Mauritania','capital':'Nouakchott','lat':18.07,'lng':-15.96,'pop':4.6}]
|
||||||
|
|
||||||
ARAB_COUNTRIES = [
|
def total_population(): return sum(c['pop'] for c in ARAB)
|
||||||
{"name_ar": "المملكة العربية السعودية", "name_en": "Saudi Arabia", "capital": "الرياض", "lat": 24.7136, "lng": 46.6753, "population_m": 35.0},
|
|
||||||
{"name_ar": "الإمارات العربية المتحدة", "name_en": "UAE", "capital": "أبوظبي", "lat": 24.4539, "lng": 54.3773, "population_m": 9.4},
|
|
||||||
{"name_ar": "مصر", "name_en": "Egypt", "capital": "القاهرة", "lat": 30.0444, "lng": 31.2357, "population_m": 109.0},
|
|
||||||
{"name_ar": "العراق", "name_en": "Iraq", "capital": "بغداد", "lat": 33.3152, "lng": 44.3661, "population_m": 43.5},
|
|
||||||
{"name_ar": "الأردن", "name_en": "Jordan", "capital": "عمّان", "lat": 31.9454, "lng": 35.9284, "population_m": 11.1},
|
|
||||||
{"name_ar": "لبنان", "name_en": "Lebanon", "capital": "بيروت", "lat": 33.8938, "lng": 35.5018, "population_m": 5.5},
|
|
||||||
{"name_ar": "سوريا", "name_en": "Syria", "capital": "دمشق", "lat": 33.5138, "lng": 36.2765, "population_m": 22.0},
|
|
||||||
{"name_ar": "فلسطين", "name_en": "Palestine", "capital": "القدس", "lat": 31.7683, "lng": 35.2137, "population_m": 5.4},
|
|
||||||
{"name_ar": "اليمن", "name_en": "Yemen", "capital": "صنعاء", "lat": 15.3694, "lng": 44.1910, "population_m": 33.0},
|
|
||||||
{"name_ar": "عُمان", "name_en": "Oman", "capital": "مسقط", "lat": 23.5880, "lng": 58.3829, "population_m": 4.5},
|
|
||||||
{"name_ar": "الكويت", "name_en": "Kuwait", "capital": "مدينة الكويت", "lat": 29.3759, "lng": 47.9774, "population_m": 4.3},
|
|
||||||
{"name_ar": "قطر", "name_en": "Qatar", "capital": "الدوحة", "lat": 25.2854, "lng": 51.5310, "population_m": 2.9},
|
|
||||||
{"name_ar": "البحرين", "name_en": "Bahrain", "capital": "المنامة", "lat": 26.2235, "lng": 50.5876, "population_m": 1.5},
|
|
||||||
{"name_ar": "الجزائر", "name_en": "Algeria", "capital": "الجزائر", "lat": 36.7538, "lng": 3.0588, "population_m": 44.0},
|
|
||||||
{"name_ar": "المغرب", "name_en": "Morocco", "capital": "الرباط", "lat": 34.0209, "lng": -6.8416, "population_m": 37.0},
|
|
||||||
{"name_ar": "تونس", "name_en": "Tunisia", "capital": "تونس", "lat": 36.8065, "lng": 10.1815, "population_m": 12.0},
|
|
||||||
{"name_ar": "ليبيا", "name_en": "Libya", "capital": "طرابلس", "lat": 32.8872, "lng": 13.1913, "population_m": 6.8},
|
|
||||||
{"name_ar": "السودان", "name_en": "Sudan", "capital": "الخرطوم", "lat": 15.5007, "lng": 32.5599, "population_m": 46.0},
|
|
||||||
{"name_ar": "موريتانيا", "name_en": "Mauritania", "capital": "نواكشوط", "lat": 18.0735, "lng": -15.9582, "population_m": 4.6},
|
|
||||||
{"name_ar": "الصومال", "name_en": "Somalia", "capital": "مقديشو", "lat": 2.0469, "lng": 45.3182, "population_m": 17.0},
|
|
||||||
{"name_ar": "جيبوتي", "name_en": "Djibouti", "capital": "جيبوتي", "lat": 11.5721, "lng": 43.1456, "population_m": 1.1},
|
|
||||||
{"name_ar": "جزر القمر", "name_en": "Comoros", "capital": "موروني", "lat": -11.7172, "lng": 43.2473, "population_m": 0.8},
|
|
||||||
]
|
|
||||||
|
|
||||||
def get_country(name: str):
|
if __name__=='__main__':
|
||||||
"""البحث عن دولة بالاسم العربي أو الإنجليزي"""
|
print(f'{len(ARAB)} Arab countries, {total_population():.1f}M people')
|
||||||
for c in ARAB_COUNTRIES:
|
for c in ARAB: print(f" {c['name']} - {c['capital']} ({c['pop']}M)")
|
||||||
if name in c["name_ar"] or name.lower() in c["name_en"].lower():
|
|
||||||
return c
|
|
||||||
return None
|
|
||||||
|
|
||||||
def get_nearest_country(lat: float, lng: float):
|
|
||||||
"""أقرب دولة عربية للإحداثيات المعطاة"""
|
|
||||||
import math
|
|
||||||
nearest = None
|
|
||||||
min_dist = float("inf")
|
|
||||||
for c in ARAB_COUNTRIES:
|
|
||||||
dist = math.sqrt((c["lat"] - lat)**2 + (c["lng"] - lng)**2)
|
|
||||||
if dist < min_dist:
|
|
||||||
min_dist = dist
|
|
||||||
nearest = c
|
|
||||||
return nearest
|
|
||||||
|
|
||||||
def total_population() -> float:
|
|
||||||
"""إجمالي سكان الوطن العربي"""
|
|
||||||
return sum(c["population_m"] for c in ARAB_COUNTRIES)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
print(f"عدد الدول العربية: {len(ARAB_COUNTRIES)}")
|
|
||||||
print(f"إجمالي السكان: {total_population():.1f} مليون نسمة")
|
|
||||||
print(f"\nالدول العربية:")
|
|
||||||
for c in ARAB_COUNTRIES:
|
|
||||||
print(f" {c['name_ar']} - العاصمة: {c['capital']} - السكان: {c['population_m']}M")
|
|
||||||
|
|||||||
المرجع في مشكلة جديدة
حظر مستخدم