变更日志
2.4.1
2023-11-23
错误修复
2.4.0
2023-08-27
新功能
重大变更
移除了 Algolia Places 地理编码器: 该服务已关闭。 由 mtmail 贡献。 (#547)
打包变更
错误修复
代码改进
将硬编码域名移动到所有地理编码器的
__init__
参数中。
2.3.0
2022-11-13
新功能
打包变更
放弃对 Python 3.5 和 3.6 的支持。
添加对 Python 3.10 和 3.11 的支持。
放宽 geographiclib 上限版本约束以允许 2.x。 由 David Hotham 贡献。 (#520)
将 geographiclib 下限版本约束提高到 1.52 以修复可能出现的
ValueError
indistance.geodesic
,这是由于浮点数精度问题导致的。 (#466)将静态元数据从
setup.py
移动到setup.cfg
。
弃用
错误修复
文档改进
添加指向 GIS Stack Exchange geopy 标签的 URL。 由 Taras Dubrava 贡献。 (#516).
GeocodeEarth
: 添加文档和定价 URL。 由 Julian Simioni 贡献。 (#505).
2.2.0
2021-07-11
新功能
新的地理编码器:
What3WordsV3
. 由 Saïd Tezel 贡献。 (#444)新的错误类:
exc.GeocoderRateLimited
. 此错误扩展了exc.GeocoderQuotaExceeded
,现在为 HTTP 422 错误代码引发它,而不是引发exc.GeocoderQuotaExceeded
。 (#479)AdapterHTTPError
: 添加了headers
属性。 (#479)
重大变更
移除了 GeocodeFarm 类: 该服务非常不稳定。 (#445)
弃用
错误修复
OpenCage
: 通过使用默认错误映射改进错误处理(例如,对于 HTTP 402 错误,引发exc.GeocoderQuotaExceeded
而不是exc.GeocoderQueryError
)。 (#479)
代码改进
HTTP 代码 408 的默认异常类型已更改:现在它被引发为
exc.GeocoderTimedOut
而不是更通用的exc.GeocoderServiceError
。 (#479)geopy.exc
: 在适当的情况下扩展更具体的内置异常:类ConfigurationError
、GeocoderQueryError
、GeocoderNotFound
现在扩展了ValueError
;GeocoderRateLimited
和GeocoderUnavailable
扩展了IOError
;GeocoderTimedOut
扩展了TimeoutError
。 (#484)
文档改进
更明确地说明经纬度顺序。由 Mateusz Konieczny 贡献。 (#476)
添加了对地理编码器签名测试(以确保所有参数都有文档记录),并修复了未通过测试的文档字符串。 (#480)
添加了
Distance
类和Distance.destination()
方法的文档 (#473)
2.1.0
2020-12-27
新功能
重大变更
错误修复
文档改进
2.0.0
2020-06-27
geopy 2.0 是一个主要版本,包含大量清理和内部重构。库的公共接口基本保持一致,支持的地理编码器集也没有变化。
如果您已在最新版本 1.x 中启用警告(即使用 -Wd
作为 python
命令的键)对代码进行了检查,并修复了所有警告,那么升级应该很安全。
新功能
geopy.adapters
模块。以前所有地理编码器都使用urllib
进行 HTTP 请求,它不支持保持活动状态。适配器是一种新机制,允许使用其他 HTTP 客户端实现。开箱即用有 3 种实现
geopy.adapters.RequestsAdapter
– 使用支持保持活动状态的requests
库(因此它比urllib
有效得多)。如果安装了requests
包,它将被默认使用。geopy.adapters.URLLibAdapter
– 使用urllib
,它基本提供与 geopy 1.x 相同的行为。如果未安装requests
包,它将被默认使用。geopy.adapters.AioHTTPAdapter
– 使用aiohttp
库。
通过
AioHTTPAdapter
在所有地理编码器中添加了可选的 asyncio 支持,请参阅新的 异步模式 文档部分。AsyncRateLimiter
–RateLimiter
的异步对应物。RateLimiter
现在是线程安全的。
打包变更
放弃了对 Python 2.7 和 3.4 的支持。
新的额外功能
geopy[requests]
用于geopy.adapters.RequestsAdapter
.geopy[aiohttp]
用于geopy.adapters.AioHTTPAdapter
.
重大变更
geopy.distance
算法现在对具有不同高度的点引发ValueError
,因为 高度在计算中被忽略.删除了
geopy.distance.vincenty
,请改用geopy.distance.geodesic
.timeout=None
现在禁用请求超时,之前在这种情况下使用默认超时。已删除
GoogleV3.timezone
,请改用GoogleV3.reverse_timezone()
。已从所有地理编码器中删除
format_string
参数。有关替代方案,请参阅 一次指定参数 文档部分。exactly_one
的默认值现在对于所有地理编码器和方法都是True
。已从所有地理编码器的
__init__
方法中删除特定于服务的请求参数。请改为将它们传递给相应的geocode
/reverse
方法。现在,所有边界框参数都必须作为两个点的列表传递。以前,一些地理编码器接受唯一的格式,例如纯字符串和 4 个坐标的列表——这些值不再有效。
GoogleV3.reverse_timezone()
以前允许使用数字at_time
值。请改为传递datetime
实例。reverse
方法以前会绕过无法解析为Point
的查询。现在,在这种情况下会引发ValueError
。Nominatim
现在在使用默认或示例用户代理时会引发geopy.exc.ConfigurationError
。Point
现在如果从单个数字构造,则会引发ValueError
。必须明确传递零经度以避免错误。地理编码器的大多数特定于服务的参数现在必须作为 kwargs 传递,不接受位置参数。
已删除
GeoNames
、OpenMapQuest
和Yandex
的身份验证密钥参数的默认值None
。地理编码器中的
parse_*
方法已添加前缀_
,以明确标记它们是私有的。
弃用
Nominatim
已从geopy.geocoders.osm
模块移动到geopy.geocoders.nominatim
。旧模块仍然存在以保持向后兼容性,但将在 geopy 3 中删除。