geopy เป็นไคลเอนต์ Python สำหรับบริการเว็บ geocoding ยอดนิยมหลายแห่ง
geopy ช่วยให้นักพัฒนา Python สามารถระบุพิกัดของที่อยู่ เมือง ประเทศ และสถานที่สำคัญต่างๆ ทั่วโลกได้อย่างง่ายดายโดยใช้เครื่องเข้ารหัสทางภูมิศาสตร์จากบุคคลที่สามและแหล่งข้อมูลอื่นๆ
geopy ประกอบด้วยคลาส geocoder สำหรับ OpenStreetMap Nominatim, Google Geocoding API (V3) และบริการ geocoding อื่นๆ อีกมากมาย รายการทั้งหมดมีอยู่ในส่วนเอกสาร Geocoders คลาส Geocoder อยู่ใน geopy.geocoders
geopy ได้รับการทดสอบกับ CPython (เวอร์ชัน 3.7, 3.8, 3.9, 3.10, 3.11, 3.12) และ PyPy3 geopy 1.x line รองรับ CPython 2.7, 3.4 และ PyPy2 ด้วย
© ผู้มีส่วนร่วม geopy 2006-2018 (ดูผู้เขียน) ภายใต้ใบอนุญาต MIT
ติดตั้งโดยใช้ pip ด้วย:
pip ติดตั้ง geopy.pip
หรือดาวน์โหลดวีลหรือไฟล์เก็บถาวรซอร์สจาก 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 สามารถคำนวณระยะทาง geodesic ระหว่างจุดสองจุดโดยใช้ระยะทาง geodesic หรือระยะทางของวงกลมใหญ่ โดยมีค่าเริ่มต้นของระยะทาง geodesic ที่มีอยู่เป็นฟังก์ชัน geopy.distance.distance
ต่อไปนี้คือตัวอย่างการใช้ระยะทาง geodesic โดยจับคู่สิ่งอันดับ (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
สามารถดูเอกสารและตัวอย่างเพิ่มเติมได้ที่อ่านเอกสาร