https://geopy.readthedocs.io/en/latest/#module-geopy.distance
1. 由名字查位置
"""
将查询地理定位到地址和坐标
"""
from geopy.geocoders import Baidu, Bing, GoogleV3, DataBC, Nominatim
#geolocator = Nominatim(user_agent="specify_your_app_name_here")
geolocator = Baidu('EiQTTRKzlV3dKN1zcZ3c7iVhIl126xvC')
#geolocator = Bing('Ajg52RB8D2BIXygYwUTcJytDGsgqURLj5lfBptOH4jmTGHHFUvt0cMqdhdhdYfr-')
#geolocator = GoogleV3('AIzaSyAVwjaaOBKbssuyQsvyqQAQDwfuzO1PKCA')
location = geolocator.geocode("四川省乐山市金口河区金河镇铜河村")
print(location.address)
print((location.latitude, location.longitude))
2. 由位置查名字
"""查找与一组坐标对应的地址"""
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', ...}
2. 由经纬度算距离
"""计算距离"""
>>> from geopy import distance
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(distance.distance(newport_ri, cleveland_oh).miles)
538.39044536
>>> wellington = (-41.32, 174.81)
>>> salamanca = (40.96, -5.50)
>>> print(distance.distance(wellington, salamanca, ellipsoid='GRS-80').km)
19959.6792674