Changelog
2.4.1
2023-11-23
错误修复
2.4.0
2023-08-27
新特点
正在中断更改
删除AlGolia Places地理编码器:该服务已关闭。由mtmail贡献。 (#547 )
包装变更
错误修复
代码改进
将硬编码域移动到
__init__
所有地理编码器的参数。
2.3.0
2022-11-13
新特点
包装变更
放弃对Python3.5和3.6的支持。
添加对Python3.10和3.11的支持。
放松geogiclib较高版本的限制,以允许2.x。作者:David Hotham。 (#520 )
将geogiclib较低版本约束提高到1.52以修复可能的问题
ValueError
在……里面distance.geodesic
由于浮点数的不准确性。 (#466 )将静态元数据从
setup.py
至setup.cfg
。
废弃
错误修复
文档改进
将url添加到GIS Stack Exchange geopy标记。作者:Taras Dubrava。 (#516 )。
GeocodeEarth
:添加文档和定价URL。朱利安·西米奥尼贡献。 (#505 )。
2.2.0
2021-07-11
新特点
新的地理编码器:
What3WordsV3
。作者:赛德·泰泽尔(Said Tezel)。 (#444 )新错误类:
exc.GeocoderRateLimited
。此错误会扩展exc.GeocoderQuotaExceeded
并且现在针对HTTP 422错误代码引发,而不是它。 (#479 )AdapterHTTPError
:已添加headers
属性。 (#479 )
正在中断更改
已删除GeocodeFarm类:服务非常不稳定。 (#445 )
废弃
错误修复
OpenCage
:通过使用默认错误图改进了错误处理(例如引发exc.GeocoderQuotaExceeded
而不是exc.GeocoderQueryError
对于HTTP 402错误)。 (#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
geopy2.0是一个包含大量清理和内部重构的主要版本。库的公共接口基本相同,并且支持的地理编码器集没有改变。
如果您在最新的1.x版本中检查了代码并启用了警告(即 -Wd
钥匙 python
命令)并修复了所有这些问题,那么升级应该是安全的。
新特点
geopy.adapters
模块。以前所有的地理编码器都使用urllib
对于HTTP请求,它不支持keepalives。适配器是一种新的机制,它允许使用其他HTTP客户端实现。有3种现成的实现方式:
geopy.adapters.RequestsAdapter
--用途requests
支持keepalives的库(因此它比urllib
). 默认情况下,如果requests
包已安装。geopy.adapters.URLLibAdapter
--用途urllib
,基本上它提供了与geopy 1.x中相同的行为requests
未安装程序包。geopy.adapters.AioHTTPAdapter
--用途aiohttp
类库。
通过在所有地理编码器中添加可选的异步支持
AioHTTPAdapter
,查看新的 Async Mode 文件部分。AsyncRateLimiter
--的异步对应项RateLimiter
.RateLimiter
现在是线程安全的。
包装变更
放弃了对Python2.7和3.4的支持。
新的附加功能:
geopy[requests]
对于geopy.adapters.RequestsAdapter
.geopy[aiohttp]
对于geopy.adapters.AioHTTPAdapter
.
正在中断更改
geopy.distance
算法现在提高了ValueError
对于不同高度的点,因为 altitude is ignored in calculations .远离的
geopy.distance.vincenty
使用geopy.distance.geodesic
相反。timeout=None
现在禁用请求超时,以前在本例中使用了默认超时。远离的
GoogleV3.timezone
使用GoogleV3.reverse_timezone()
相反。远离的
format_string
所有地理编码器的参数。看到了吗 Specifying Parameters Once 备选方案的文件部分。exactly_one
的默认值是nowTrue
所有的地理编码器和方法。已从所有
__init__
methods of geocoders. Pass them to the correspondinggeocode
/reverse
方法。所有边界框参数现在必须作为两点的列表传递。以前,一些地理编码人员接受一些独特的格式,比如纯字符串和4个坐标的列表——这些值不再有效。
GoogleV3.reverse_timezone()
用于允许数字at_time
价值观。通过datetime
而是实例。reverse
方法在无法将查询解析为Point
. 现在是ValueError
在这种情况下被提出。Nominatim
现在提出geopy.exc.ConfigurationError
与默认用户代理或示例用户代理一起使用时。Point
现在提出一个ValueError
如果从单个数字构造。必须显式传递零经度以避免错误。地理编码器的大多数特定于服务的参数现在必须作为kwargs传递,不接受位置参数。
删除的默认值
None
的身份验证密钥参数GeoNames
,OpenMapQuest
和Yandex
.parse_*
geocoders中的方法的前缀为_
明确标记它们是私有的。
废弃
Nominatim
已从移动geopy.geocoders.osm
模块到geopy.geocoders.nominatim
. 为了向后兼容,旧模块仍然存在,但它将在geopy 3中删除。