from geopy import distance
newport_ri = (41.49008, -71.312796)
cleveland_oh = (41.499498, -81.695391)
print(distance.distance(newport_ri, cleveland_oh).miles)#最后以英里单位输出
#output
538.39044536
wellington = (-41.32, 174.81)
salamanca = (40.96, -5.50)
print(distance.distance(wellington, salamanca).km)# 以 km 作为单位输出
19959.6792674
2,Geopy2.1 Geopy 库介绍这里介绍一个Python 包 Geopy ,借助它也可以实现经纬度地理位置转换,这款包之经纬度转换原理其实还是借助了第三方 API 平台,因为市面上提供经纬度转换 第三方平台很多,为了方便, Geopy 把这些接口都分别封装在一个类中,借助 Geopy 模块来调用,支持的第三放平台如下Geopy作为一个专注于地理处理包之外, 除了能实现上面地理编码、逆地理编码功能之外,还有一个其它令我经验的功能, 提供两个经纬度坐标,计算他们在地球上的最短距离下面将介.
中文领域:
指的是提取境内地址的经纬度,的主要调用的是百度API。中间经历了一些波折,刚开始直接使用网上代码debug半天都不行,才发现要随时跟进官方改动,使用别人的API一定要看说明书啊!
首先需要从百度地图平台上注册一个AK(在这之前要注册百度的开发者身份,免费),进入其地理编码网址:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
由于我们是要从地址转换经纬度,因此看地理编码就可以了。
官网给出了服务文档(千万要看),因为爬取地址时需要提供url,这个url必须和官方提供的一致
一、geopy 简介及安装
可以使用geopy库来查询地址,国家,城市,地标,geopy使用的是第三方的geo解析器(包括谷歌地图,必应地图,Nominatim等)和一些数据源来获取地理信息。
安装 geopy:
pip3 install geopy
二、geopy 使用
1、从地址字符串获取 Location 对象
也就是将字符串转换为地理位置。
# coding=utf-8
from geo...
您可以使用 geopy 库中的 geocode 函数来获取地址的经纬度信息,然后使用逆地理编码来获取地址信息。具体可以参考下面的代码示例:
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="my_application")
location = geolocator.geocode("北京市海淀区中关...
# 计算平面坐标
x = R * math.cos(lat_rad) * math.cos(lon_rad)
y = R * math.cos(lat_rad) * math.sin(lon_rad)
return (x, y)
lat = 39.9042
lon = 116.4074
x, y = convert_to_plane_coord(lat, lon)
print("经度:", lon)
print("纬度:", lat)
print("平面坐标:", x, y)
希望能对你有所帮助。