From d48703dad6bb11db50f74a9de571f054aa7bdda6 Mon Sep 17 00:00:00 2001 From: khalid_py Date: Wed, 5 Aug 2026 09:59:00 +0000 Subject: [PATCH] =?UTF-8?q?=D8=A5=D8=B6=D8=A7=D9=81=D8=A9=20geo=5Fdata.py?= =?UTF-8?q?=20-=20=D8=A8=D8=B3=D9=85=20=D8=A7=D9=84=D9=84=D9=87=20=D8=A7?= =?UTF-8?q?=D9=84=D8=B1=D8=AD=D9=85=D9=86=20=D8=A7=D9=84=D8=B1=D8=AD=D9=8A?= =?UTF-8?q?=D9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- geo_data.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 geo_data.py diff --git a/geo_data.py b/geo_data.py new file mode 100644 index 0000000..a64602e --- /dev/null +++ b/geo_data.py @@ -0,0 +1,56 @@ +"""Arab World Geo Data - بيانات جغرافية للوطن العربي""" + +ARAB_COUNTRIES = [ + {"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): + """البحث عن دولة بالاسم العربي أو الإنجليزي""" + for c in ARAB_COUNTRIES: + 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")