变更日志

2.4.1

2023-11-23

错误修复

2.4.0

2023-08-27

新功能

  • 新的地理编码器: Woosmap. 由 galela 贡献。 (#541)

  • 新的地理编码器: Geokeo. 由 Geokeo 贡献。 (#490)

重大变更

  • 移除了 Algolia Places 地理编码器: 该服务已关闭。 由 mtmail 贡献。 (#547)

打包变更

  • 添加对 Python 3.12 的支持。 (#559)

  • 更新维护者电子邮件。

  • GitHub 发行版现在使用 GPG 签名。 (#550)

  • 测试: 从 httpbin.org 切换到 httpbingo.org。 (#551)

  • 测试: 使用 tox allowlist_externals 而不是 whitelist_externals. 由 galela 贡献。 (#540)

错误修复

  • RequestsAdapter: 默认使用系统 CA 存储,而不是 certifi。 (#558)

  • DataBC: 更新服务域名和端点。 由 nickpcrogers 贡献。 (#557)

代码改进

  • 将硬编码域名移动到所有地理编码器的 __init__ 参数中。

2.3.0

2022-11-13

新功能

  • MapBox: 添加 referer 参数以允许受限 api_key。 由 Dennis Stritzke 贡献。 (#501)

  • MapBox: 添加 language 参数到 geocode。 由 Dennis Stritzke 贡献。 (#503)

  • Distance: 添加地板除法 + 右侧乘法运算符。 (#485)

  • Distance: 设为可哈希。 (#485)

  • Nominatim: 添加 namedetails 参数到 reverse。 (#525)

  • Pelias: 添加 countries 参数到 geocode。 (#504)

  • GoogleV3: 将原始 error_message 传递给异常。 (#398)

打包变更

  • 放弃对 Python 3.5 和 3.6 的支持。

  • 添加对 Python 3.10 和 3.11 的支持。

  • 放宽 geographiclib 上限版本约束以允许 2.x。 由 David Hotham 贡献。 (#520)

  • 将 geographiclib 下限版本约束提高到 1.52 以修复可能出现的 ValueError in distance.geodesic,这是由于浮点数精度问题导致的。 (#466)

  • 将静态元数据从 setup.py 移动到 setup.cfg

弃用

  • Pelias: 弃用 country_bias 参数,改用 countries。 (#504)

  • IGNFrance: API 不再接受身份验证,因此将任何凭据传递给地理编码器类已被弃用。 这些参数应该被移除。 (#496)

错误修复

  • 修复 TypeErrorRequestsAdapter 销毁时抛出。 由 Philip Kahn 贡献。 (#488)

  • ArcGIS: 从 LongLabel 获取地址,如果 Address 为空。

  • 所有地理编码器: 修复逆向地理编码中接近零的坐标的意外科学点格式。 (#511)

  • BANFrance: 修复了逆向地理编码器 (看起来他们的 API 发生了不兼容的更改: lng 查询参数已重命名为 lon)。

  • IGNFrance: 修复了由于其 API 中删除身份验证而导致的地理编码器故障。 (#496)

文档改进

  • 添加指向 GIS Stack Exchange geopy 标签的 URL。 由 Taras Dubrava 贡献。 (#516).

  • GeocodeEarth: 添加文档和定价 URL。 由 Julian Simioni 贡献。 (#505).

2.2.0

2021-07-11

新功能

重大变更

  • 移除了 GeocodeFarm 类: 该服务非常不稳定。 (#445)

弃用

  • GoogleV3 已从 geopy.geocoders.googlev3 模块移动到 geopy.geocoders.google。 为了向后兼容,旧模块仍然存在,但将在 geopy 3 中删除。 (#483)

错误修复

代码改进

文档改进

  • 更明确地说明经纬度顺序。由 Mateusz Konieczny 贡献。 (#476)

  • 添加了对地理编码器签名测试(以确保所有参数都有文档记录),并修复了未通过测试的文档字符串。 (#480)

  • 添加了 Distance 类和 Distance.destination() 方法的文档 (#473)

2.1.0

2020-12-27

新功能

  • 添加对 Point 构造函数中前导加号的支持。由 Azimjon Pulatov 贡献。 (#448)

重大变更

  • GoogleV3: 将缺少的 api_key 警告更改为错误。 (#450)

错误修复

  • 修复了 geopy 2.0.0 中未记录的重大变更,其中 Distance 类已变为抽象类,因此它不再可用于单位转换。 (#435)

  • Photon 错误地将 0.0 坐标视为空响应。由 Mateusz Konieczny 贡献。 (#439)

  • Nominatim: 修复了空 reverse 结果上的 TypeError。 (#455)

文档改进

  • 将 Python 3.9 添加到支持版本列表中。

  • Bing: 将 postalcode 更改为 postalCode。由 zhongjun-ma 贡献。 (#424)

  • Nominatim: 更详细地描述了 addressdetails 中返回的内容。由 Mateusz Konieczny 贡献。 (#429)

  • Nominatim: 更详细地描述了 viewbox 参数的行为。由 Hannes 贡献。 (#454)

  • Yandex: 删除关于需要 API 密钥的注意事项块。

2.0.0

2020-06-27

geopy 2.0 是一个主要版本,包含大量清理和内部重构。库的公共接口基本保持一致,支持的地理编码器集也没有变化。

如果您已在最新版本 1.x 中启用警告(即使用 -Wd 作为 python 命令的键)对代码进行了检查,并修复了所有警告,那么升级应该很安全。

新功能

打包变更

重大变更

  • 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

  • LocationTimezone 类不再接受 pointraw 参数的 None。

  • Nominatim 现在在使用默认或示例用户代理时会引发 geopy.exc.ConfigurationError

  • Point 现在如果从单个数字构造,则会引发 ValueError。必须明确传递零经度以避免错误。

  • 地理编码器的大多数特定于服务的参数现在必须作为 kwargs 传递,不接受位置参数。

  • 已删除 GeoNamesOpenMapQuestYandex 的身份验证密钥参数的默认值 None

  • 地理编码器中的 parse_* 方法已添加前缀 _,以明确标记它们是私有的。

弃用

  • Nominatim 已从 geopy.geocoders.osm 模块移动到 geopy.geocoders.nominatim。旧模块仍然存在以保持向后兼容性,但将在 geopy 3 中删除。