变更日志
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 以修复可能出现的
ValueErrorindistance.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 中删除。