Geopy هو عميل Python للعديد من خدمات الويب المشهورة للترميز الجغرافي.
Geopy يجعل من السهل على مطوري Python تحديد إحداثيات العناوين والمدن والبلدان والمعالم في جميع أنحاء العالم باستخدام برامج الترميز الجغرافي التابعة لجهات خارجية ومصادر البيانات الأخرى.
تتضمن Geopy فئات المكود الجغرافي لـ OpenStreetMap Nominatim وGoogle Geocoding API (V3) والعديد من خدمات الترميز الجغرافي الأخرى. القائمة الكاملة متاحة في قسم مستند Geocoders. توجد فئات المكود الجغرافي في Geopy.geocoders.
تم اختبار Geopy ضد CPython (الإصدارات 3.7، 3.8، 3.9، 3.10، 3.11، 3.12) وPyPy3. يدعم خط Geopy 1.x أيضًا CPython 2.7 و3.4 وPyPy2.
© المساهمين Geopy 2006-2018 (انظر المؤلفين) بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.
التثبيت باستخدام النقطة مع:
نقطة تثبيت Geopy
أو قم بتنزيل عجلة أو أرشيف المصدر من PyPI.
لتحديد الموقع الجغرافي لاستعلام إلى عنوان وإحداثيات:
>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim( user_agent = " specify_your_app_name_here " )
>>> location = geolocator.geocode( " 175 5th Avenue NYC " )
>>> print (location.address)
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ...
>>> print ((location.latitude, location.longitude))
(40.7410861, -73.9896297241625)
>>> print (location.raw)
{'place_id': '9167009604', 'type': 'attraction', ...}
للعثور على العنوان المقابل لمجموعة الإحداثيات:
>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim( user_agent = " specify_your_app_name_here " )
>>> location = geolocator.reverse( " 52.509669, 13.376294 " )
>>> print (location.address)
Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union
>>> print ((location.latitude, location.longitude))
(52.5094982, 13.3765983)
>>> print (location.raw)
{'place_id': '654513', 'osm_type': 'node', ...}
يمكن لـ Geopy حساب المسافة الجيوديسية بين نقطتين باستخدام المسافة الجيوديسية أو مسافة الدائرة الكبرى، مع توفر افتراضي للمسافة الجيوديسية كدالة Geopy.distance.distance.
فيما يلي مثال لاستخدام المسافة الجيوديسية، مع أخذ زوج من الصفوف (lat, lon)
:
>>> from geopy.distance import geodesic
>>> newport_ri = ( 41.49008 , - 71.312796 )
>>> cleveland_oh = ( 41.499498 , - 81.695391 )
>>> print (geodesic(newport_ri, cleveland_oh).miles)
538.390445368
باستخدام مسافة الدائرة الكبرى، نأخذ أيضًا زوجًا من الصفوف (lat, lon)
:
>>> from geopy.distance import great_circle
>>> newport_ri = ( 41.49008 , - 71.312796 )
>>> cleveland_oh = ( 41.499498 , - 81.695391 )
>>> print (great_circle(newport_ri, cleveland_oh).miles)
536.997990696
يمكن العثور على المزيد من الوثائق والأمثلة في قراءة المستندات.