欢迎使用Geopy文档!

GeoPy logo
文档

https://geopy.readthedocs.io/

源代码

https://github.com/geopy/geopy

问题跟踪器

https://github.com/geopy/geopy/issues

堆栈溢出

https://stackoverflow.com/questions/tagged/geopy

PyPI

https://pypi.org/project/geopy/

geopy是几种流行的地理编码Web服务的python 2和3客户机。

geopy使python开发人员能够使用第三方地理编码程序和其他数据源轻松定位全球各地的地址、城市、国家和地标的坐标。

geopy是针对Cpython(版本2.7、3.4、3.5、3.6、3.7)、pypy和pypy3进行测试的。Geopy不会也不会支持CPython 2.6。

安装

pip install geopy

geopy 2.0

geopy 2.0将于2019年发布,大概在第二季度发布。只支持python >=3.5`和>=pypy3.5' 。之后,1.x分支将不会接收任何功能,但关键的错误修复可能会根据请求进行反向移植。

新版本中的python 2.7支持已经在许多其他科学的python包中删除,例如 numpypandas (参见https://python3statement.org/)因此,现在也是摆脱2.7的重要时刻。

1.x系列的最后一个次要版本将包含对2.0中引入的所有中断更改的取消预测警告,因此请确保在启用警告的情况下检查代码(即使用 -Wd 开关运行python)以确保从1.x平滑过渡到2.0。

地理编码器

您可能使用的每个地理定位服务(如Google地图、Bing地图或Nomingim)都在 geopy.geocoders 中有自己的类 ,用于抽象服务的API。每个地理编码程序至少定义一个 geocode 方法,用于从字符串中解析位置,并且可以定义 reverse 方法,它将一对坐标解析为一个地址。每个地理编码程序在初始化期间接受与其服务交互所需的任何凭证或设置,例如API密钥或区域设置。

要将查询定位到地址和坐标,请执行以下操作:

>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim(user_agent="specify_your_app_name_here")
>>> location = geolocator.geocode("175 5th Avenue NYC")
>>> print(location.address)
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ...
>>> print((location.latitude, location.longitude))
(40.7410861, -73.9896297241625)
>>> print(location.raw)
{'place_id': '9167009604', 'type': 'attraction', ...}

要查找与一组坐标对应的地址:

>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim(user_agent="specify_your_app_name_here")
>>> location = geolocator.reverse("52.509669, 13.376294")
>>> print(location.address)
Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union
>>> print((location.latitude, location.longitude))
(52.5094982, 13.3765983)
>>> print(location.raw)
{'place_id': '654513', 'osm_type': 'node', ...}

定位器 geocodereverse 方法需要参数 query 至少接受这个参数 exactly_one ,这就是 True 默认情况下。地理编码可能具有其他属性,例如,必应接受 user_location ,其作用是偏向该位置附近的结果。 geocodereverse 方法可以返回三种类型的值:

  • 当没有找到结果时,返回 None .

  • 当方法 exactly_one 参数是 True 并且至少找到一个结果,返回 geopy.location.Location 对象,可以迭代为:

    (address<String>, (latitude<Float>, longitude<Float>))

    或者可以访问为 location.addresslocation.latitudelocation.longitudelocation.altitudelocation.raw . 最后一个包含对这个结果的完整地理编码响应。

  • exactly_oneFalse ,并且至少有一个结果,返回 geopy.location.Location 对象,如上所述:

    [location, [...]]

如果服务不可用,或者返回非OK响应,或者在分配的超时时间内未收到响应,您将收到 Exceptions 详见下文。

每个地理编码都接受一个参数 format_string 默认为 '%s' 其中插入到geocode的输入字符串。例如,如果您只需要在 Cleveland, Ohio 中对地理位置进行地理编码, 你可以这样做:

>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim(user_agent="specify_your_app_name_here",
...                        format_string="%s, Cleveland OH")
>>> address, (latitude, longitude) = geolocator.geocode("11111 Euclid Ave")
>>> print(address, latitude, longitude)
Thwing Center, 11111, Euclid Avenue, Magnolia-Wade Park Historic District, University Circle, Cleveland, Cuyahoga County, Ohio, 44106, USA 41.5074076 -81.6083649792596
geopy.geocoders.get_geocoder_for_service(service)

对于提供的服务,请尝试返回地理编码程序类。

>>> from geopy.geocoders import get_geocoder_for_service
>>> get_geocoder_for_service("nominatim")
geopy.geocoders.osm.Nominatim

如果无法识别给定的字符串,则 geopy.exc.GeocoderNotFound 引发异常。

默认选项对象

class geopy.geocoders.options

这个 options 对象包含地理编码程序的默认配置值,例如 timeoutUser-Agent. 您可以覆盖此对象中的默认值,而不是单独向每个地理编码程序传递自定义值。

请注意,并不是所有的地理代码都使用这个对象的所有属性。例如,一些地理编码器不遵守 default_scheme 属性。请参阅特定地理编码程序的初始值设定项文档,以获取地理编码程序接受的参数列表。

覆盖默认值的示例 timeoutuser_agent ::

>>> import geopy.geocoders
>>> from geopy.geocoders import Nominatim
>>> geopy.geocoders.options.default_user_agent = 'my_app/1'
>>> geopy.geocoders.options.default_timeout = 7
>>> geolocator = Nominatim()
>>> print(geolocator.headers)
{'User-Agent': 'my_app/1'}
>>> print(geolocator.timeout)
7
属性:
default_format_string

字符串包含 '%s' 在查询地理编码之前,应该在何处插入到地理编码的字符串。被使用 geocode 调用使用。例如: '%s, Mountain View, CA' .

default_proxies

通过HTTP代理对请求进行隧道处理。

默认情况下,系统代理是受尊重的(例如 HTTP_PROXYHTTPS_PROXY env vars或他定于平台的代理设置,如macos或windows本机首选项--请参见 urllib.request.ProxyHandler 了解更多详细信息)。这个 proxies 使用系统代理的值为 None .

要直接禁用系统代理并发出请求,请显式传递空dict作为的值 proxies: {{}} .

要使用自定义HTTP代理位置,请传递一个字符串。有效的例子有:

  • "192.0.2.0:8080"

  • "john:passw0rd@192.0.2.0:8080"

  • "http://john:passw0rd@192.0.2.0:8080"

请注意:

  • 方案部分( http:// )将忽略代理的。

  • 仅支持 http 代理。即使代理方案是 https, 它将被忽略,并且客户端和代理之间的连接仍然是未加密的。然而, 仍然支持通过 https 代理的 http 请求(通过 HTTP CONNECT 方法)。

可能会提供原始 urllib-style proxies 可以提供dict而不是字符串:

  • {{"https": "192.0.2.0:8080"}} --意味着HTTP代理将仅用于具有 https 方案请求。字符串 proxies 值自动用于这两个方案,并作为urlib样式 proxies 的简写提供。

有关详细信息,请参阅文档 urllib.request.ProxyHandler .

在 1.15.0 版更改: 增加了对字符串值的支持。

default_scheme

使用 'https''http' 作为API URL的方案。

default_ssl_context

An :class: 具有自定义TLS验证设置的 ssl.SSLContext 实例。通过 None 使用解释器的默认值(从python 2.7.9和3.4.3开始,即使用系统的可信CA证书;旧版本不完全支持TLS验证)。

对于旧版本的python(2.7.9和3.4.3之前的版本),此参数被忽略,因为 urlopen 不接受那里的SSL上下文,并发出警告。

使用 requests 类库:

import ssl
import certifi
import geopy.geocoders
ctx = ssl.create_default_context(cafile=certifi.where())
geopy.geocoders.options.default_ssl_context = ctx

要完全禁用TLS证书验证,请执行以下操作:

import ssl
import geopy.geocoders
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
geopy.geocoders.options.default_ssl_context = ctx

请参阅文档 ssl.SSLContext 类以获取更多示例。

default_timeout

等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。通过 None 禁用超时。

注解

目前 None 因为只有在 geopy.geocoders.options.default_timeout 选项值。 timeout=None 作为方法参数(即 geocoder.geocode(..., timeout=None) )将被视为“使用超时,如 geopy.geocoders.options.default_timeout “,将发出一个折旧警告。在Geopy 2.0中,这将发生变化,因此 timeout=None 将实际禁用超时。

default_user_agent

要与请求一起发送到geocoder api的用户代理头。

default_format_string = '%s'
default_proxies = None
default_scheme = 'https'
default_ssl_context = None
default_timeout = 1
default_user_agent = 'geopy/1.20.0'

与 Pandas 一起使用

可以利用 geopy 对 pandas DataFrame 进行地理编码,但是必须考虑速率限制。

大量的 DataFrame 行可能会对地理编码服务产生大量的地理编码请求,这些请求可能会受到服务的限制(例如,通过返回 Too Many Requests 429 HTTP错误或超时)。

geopy.extra.rate_limiter.RateLimiter 类提供了一个方便的包装器,可用于在地理编码调用之间自动添加延迟,以减少对地理编码服务的负载。此外,它还可以重试失败的请求,并接收个别行的错误。

如果你有 Too Many Requests 错误,您可以尝试以下操作:

  • 使用 geopy.extra.rate_limiter.RateLimiter 非零 min_delay_seconds .

  • 尝试不同的地理编码服务(请先咨询他们的TOS,因为有些服务禁止批量地理编码)。

  • 对所选的地理编码服务采取付费计划,这将提供更高的配额。

  • 提供您自己的地理编码服务的本地副本(如nomingim)。

class geopy.extra.rate_limiter.RateLimiter(func, min_delay_seconds=0.0, max_retries=2, error_wait_seconds=5.0, swallow_exceptions=True, return_value_on_exception=None)

Ratelimiter允许在优雅地处理错误响应和在需要时添加延迟的同时执行批量操作。

在下面的示例中,每对 geolocator.geocode 之间会加一个1秒的延迟( min_delay_seconds=1 );全部 geopy.exc.GeocoderServiceError 异常将被重试(直到 max_retries 次)::

import pandas as pd
df = pd.DataFrame({'name': ['paris', 'berlin', 'london']})

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="specify_your_app_name_here")

from geopy.extra.rate_limiter import RateLimiter
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
df['location'] = df['name'].apply(geocode)

df['point'] = df['location'].apply(lambda loc: tuple(loc.point) if loc else None)

这将生成以下DataFrame:

>>> df
     name                                           location  \
0   paris  (Paris, Île-de-France, France métropolitaine, ...
1  berlin  (Berlin, 10117, Deutschland, (52.5170365, 13.3...
2  london  (London, Greater London, England, SW1A 2DU, UK...

                           point
0   (48.8566101, 2.3514992, 0.0)
1  (52.5170365, 13.3888599, 0.0)
2  (51.5073219, -0.1276474, 0.0)

将额外选项传递给 geocode 调用:

from functools import partial
df['location'] = df['name'].apply(partial(geocode, language='de'))

要查看进度条,请执行以下操作:

from tqdm import tqdm
tqdm.pandas()
df['location'] = df['name'].progress_apply(geocode)

在使用这个类之前,请咨询地理编码服务TOS,它可能明确地认为批量请求(甚至是节流)是一个冲突。

1.16.0 新版功能.

__init__(func, min_delay_seconds=0.0, max_retries=2, error_wait_seconds=5.0, swallow_exceptions=True, return_value_on_exception=None)
参数
  • func (callable) -- 应该由 RateLimiter 包装的函数.

  • min_delay_seconds (float) -- 包装之间的最小延迟(秒) func

  • max_retries (int) -- 异常重试次数。只有 geopy.exc.GeocoderServiceError 异常被重试——其他的总是被重新引发。 max_retries + 1 请求将以每个查询的最大值执行。设置 max_retries=0 禁用重试。

  • error_wait_seconds (float) -- 出错后两次重试之间的等待时间。必须大于或等于 min_delay_seconds .

  • swallow_exceptions (bool) -- 是否应在重试后接受异常?否则,将重新提升。如果是, return_value_on_exception 将被退回。

  • return_value_on_exception -- 当 swallow_exceptions=True 失败时返回的值.

ArcGIS

class geopy.geocoders.ArcGIS(username=None, password=None, referer=None, token_lifetime=60, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, auth_domain='www.arcgis.com', domain='geocode.arcgis.com')

使用rsi arcgis API的地理编码。

文件地址:

https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm

__init__(username=None, password=None, referer=None, token_lifetime=60, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, auth_domain='www.arcgis.com', domain='geocode.arcgis.com')
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, out_fields=None)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • out_fields (str or iterable) -- 要在原始数据的属性字段中返回的输出字段列表。这可以是字段的python列表/元组,也可以是逗号分隔的字符串。有关支持的输出字段列表,请参阅https://developers.arcgis.com/rest/geocode/api-reference/geocoding-service-output.htm。如果要返回所有支持的输出字段,请设置 out_fields="*" . …添加的版本:1.14.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, distance=None, wkid=4326)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • distance (int) -- 距离搜索的查询位置的距离(以米为单位)。如果未指定,Arcgis的默认值为100米。

  • wkid (str) -- Wkid用于输入和输出坐标。…已弃用::1.14.0它以前不工作,因为它在请求参数中被错误指定,并且即使我们修复请求也无法工作,因为 geopy.point.Point 根据WKID 4326标准化坐标。如果您认为应该支持自定义WKID值,请在地质问题跟踪程序中打开一个问题。此参数计划在Geopy 2.0中删除。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

AzureMaps

class geopy.geocoders.AzureMaps(subscription_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, domain='atlas.microsoft.com')

基类:geopy.geocoders.tomtom.TomTom

基于TomTom的azuremaps地理编码器。

文件地址:

https://docs.microsoft.com/en-us/azure/azure-maps/index

1.15.0 新版功能.

__init__(subscription_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, domain='atlas.microsoft.com')
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, typeahead=False, language=None)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • limit (int) -- 要从服务返回的最大结果量。除非exact_one设置为False,否则限制将始终为1。

  • typeahead (bool) -- 如果设置了“typeahead”标志,查询将被解释为部分输入,搜索将进入预测模式。

  • language (str) -- 应返回搜索结果的语言。 如果指定语言的数据不适用于特定字段,则使用默认语言。 支持的语言列表(不区分大小写):https://developer.tomtom.com/online-search/online-search-documentation/supported-languages

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, language=None)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 应返回搜索结果的语言。 如果指定语言的数据不适用于特定字段,则使用默认语言。 支持的语言列表(不区分大小写):https://developer.tomtom.com/online-search/online-search-documentation/supported-languages .. versionadded:: 1.18.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

百度

class geopy.geocoders.Baidu(api_key, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, security_key=None)

使用百度地图v2 API的地理编码。

文件地址:

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

1.0.0 新版功能.

__init__(api_key, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, security_key=None)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。百度的API最多只能返回一个结果。…添加的版本:1.14.0

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

BANFrance

class geopy.geocoders.BANFrance(domain='api-adresse.data.gouv.fr', format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)

使用基础地址的地理编码国家法国API。

文件地址:

https://adresse.data.gouv.fr/api

1.18.0 新版功能.

__init__(domain='api-adresse.data.gouv.fr', format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, limit=None, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • limit (int) -- 定义响应结构中的最大项数。如果没有提供,并且有多个结果,BAN API将默认返回5个结果。如果 exactly_one 是True,则将重置为1。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

Bing

class geopy.geocoders.Bing(api_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)

使用Bing地图位置API进行地理编码。

文件地址:

https://msdn.microsoft.com/en-us/library/ff701715.aspx

__init__(api_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, user_location=None, timeout=DEFAULT_SENTINEL, culture=None, include_neighborhood=None, include_country_code=False)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。对于结构化查询,提供其键为以下之一的字典: addressLine, locality (城市) adminDistrict (国家) countryRegion, 或 postalcode.

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • user_location (geopy.point.Point) -- 确定靠近此位置的结果的优先级。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • culture (str) -- 影响响应的语言,必须是两个字母的国家/地区代码。…添加的版本:1.4.0

  • include_neighborhood (bool) -- 设置是否在响应中包含邻域字段。…添加的版本:1.4.0

  • include_country_code (bool) -- 设置是否在响应中包含国家/地区的两个字母的ISO代码(字段名“countryRegioniso2”)。…添加的版本:1.4.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, culture=None, include_country_code=False)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • culture (str) -- 影响响应的语言,必须是两个字母的国家/地区代码。

  • include_country_code (bool) -- 设置是否在响应中包含国家/地区的两个字母的ISO代码(字段名“countryRegioniso2”)。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

数据库

class geopy.geocoders.DataBC(scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

使用来自databc的物理地址地理码器的地理码器。

文件地址:

http://www.data.gov.bc.ca/dbc/geographic/locate/geocoding.page

__init__(scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, max_results=25, set_back=0, location_descriptor='any', exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • max_results (int) -- 要请求的最大结果数。

  • set_back (float) -- 将接入点从路缘(以米为单位)移动到地块内部的距离。位置描述符必须设置为访问点才能使设置返回生效。

  • location_descriptor (str) -- 请求的点类型。它可以是任何,入口点,前门点,停车点,屋顶点和路线点。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

GeocodeEarth

class geopy.geocoders.GeocodeEarth(api_key, format_string=None, boundary_rect=None, country_bias=None, domain='api.geocode.earth', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL)

基类:geopy.geocoders.pelias.Pelias

geocode.earth,一个基于pelias的服务,由pelias本身的开发人员提供。

1.15.0 新版功能.

__init__(api_key, format_string=None, boundary_rect=None, country_bias=None, domain='api.geocode.earth', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, boundary_rect=None, country_bias=None)

按地址返回位置点。

参数
  • query (str) -- 要进行地理编码的地理编码地址、查询或结构化查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • boundary_rect (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 限制搜索的坐标。例子: [Point(22, 180), Point(-22, -180)] . …添加的版本:1.19.0

  • country_bias (str) -- 对这个国家的偏见结果(iso alpha-3)。…添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

GeocodeFarm

class geopy.geocoders.GeocodeFarm(api_key=None, format_string=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, scheme=None)

使用geocodefarm api的geocoder。

文件地址:

https://www.geocode.farm/geocoding/free-api-documentation/

__init__(api_key=None, format_string=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, scheme=None)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。geocodefarm的api最多返回一个结果。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

Geolake

class geopy.geocoders.Geolake(api_key, domain='api.geolake.com', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

使用geolike api的地理编码。

文件地址:

https://geolake.com/docs/api

服务条款:

https://geolake.com/terms-of-use

1.18.0 新版功能.

__init__(api_key, domain='api.geolake.com', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, country_codes=None, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。对于结构化查询,提供其键为以下之一的字典: countrystatecityzipcodestreetaddresshouseNumbersubNumber .

  • country_codes (str or list) -- 为地理编码程序提供查询可能驻留的国家/地区代码列表。该值将把地理编码限制在所提供的国家。国家代码是由ISO-3166-1α-2标准(例如 FR )可以使用python列表指定多个国家/地区。…versionChanged::1.19.0以前只能指定国家/地区的python列表。现在也可以指定一个国家作为字符串。

  • exactly_one (bool) -- 返回一个结果或一个结果的列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

GeoNames

class geopy.geocoders.GeoNames(country_bias=None, username=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, scheme='http')

GeoNames 地理编码器。

文件地址:

http://www.geonames.org/export/geonames-search.html

反向地理编码文件:

http://www.geonames.org/export/web-services.html#findNearbyPlaceName

__init__(country_bias=None, username=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, scheme='http')
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, country=None, country_bias=None)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • country (str or list) -- 将记录限制到指定的国家。两个字母的国家代码ISO-3166(例如 FR )可能是单个字符串或字符串列表。…添加的版本:1.19.0

  • country_bias (str) -- 首先列出来自国家/地区偏差的记录。两个字母的国家代码ISO-3166。…添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=DEFAULT_SENTINEL, timeout=DEFAULT_SENTINEL, feature_code=None, lang=None, find_nearby_type='findNearbyPlaceName')

按地点返回地址。

1.2.0 新版功能.

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。…versionChanged::1.14.0的默认值 exactly_one 的默认值是 False 与传统的geopy违约不同。请始终明确传递此参数,否则将收到警告。在Geopy 2.0中,默认值将变为 True .

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • feature_code (str) -- GeoNames功能代码。添加的版本:1.18.0

  • lang (str) -- 返回的语言 name 元素(伪语言代码“local”将以本地语言返回)支持的语言的完整列表可在以下位置找到:https://www.geonames.org/countries/..添加的版本:1.18.0

  • find_nearby_type (str) -- 用于在不同GeoNames API端点之间切换的标志。默认值为 findNearbyPlaceName 返回最近的居民点。另一个当前实现的选项是 findNearby 返回lat/lng查询的最近地名。…添加的版本:1.18.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse_timezone(query, timeout=DEFAULT_SENTINEL)

`query`找到一个点的时区 .

GeoNames 总是返回时区:如果查询的点没有分配的olson时区ID,则 pytz.FixedOffset 时区用于生成 :类:`geopy.timezone.Timezone` .

1.18.0 新版功能.

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s") -- 需要时区的坐标。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

geopy.timezone.Timezone

GoGuLv3

class geopy.geocoders.GoogleV3(api_key=None, domain='maps.googleapis.com', scheme=None, client_id=None, secret_key=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, channel='')

使用谷歌地图v3 api的地理编码。

文件地址:

https://developers.google.com/maps/documentation/geocoding/

注意

自2018年7月起,Google要求每个请求都拥有API密钥。 请参阅https://developers.google.com/maps/documentation/geocoding/usage-and-billing

__init__(api_key=None, domain='maps.googleapis.com', scheme=None, client_id=None, secret_key=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL, channel='')
参数
geocode(query=None, exactly_one=True, timeout=DEFAULT_SENTINEL, bounds=None, region=None, components=None, place_id=None, language=None, sensor=False)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。可选的,如果 components 参数设置为:>>>G.geocode(components=“city”:“paris”,“country”:“fr”) 位置(法国,(46.227638,2.213749,0.0))。版本已更改:1.14.0如果设置了 components 参数,现在 query 是可选的。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • bounds (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 视区的边界框,在其中偏向地理编码的结果更突出。例如: [Point(22, 180), Point(-22, -180)] . …versionChanged::1.17.0以前唯一支持的边界格式是 [latitude, longitude, latitude, longitude] . 此格式现在已被弃用,取而代之的是一对地理位置点的列表/元组,将在geopy2.0中删除。

  • region (str) -- 区域代码,指定为cctld(“顶级域”)的两个字符值。

  • components (dict) -- 仅限于一个区域。可以使用以下任意组合:路线、地点、行政区域、邮政编码、国家。

  • place_id (str) -- 使用地点ID检索位置。不能与一起使用 querybounds 参数。>>>G.geocode(place_id='chijocfp0iq2j4ardrxua7zws34')…添加的版本:1.19.0

  • language (str) -- 返回结果的语言。

  • sensor (bool) -- 地理编码请求是否来自带有位置传感器的设备。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=DEFAULT_SENTINEL, timeout=DEFAULT_SENTINEL, language=None, sensor=False)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。…versionChanged::1.14.0的默认值 exactly_one 的默认值是 False 与传统的geopy违约不同。请始终明确传递此参数,否则将收到警告。在Geopy 2.0中,默认值将变为 True .

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 返回结果的语言。

  • sensor (bool) -- 地理编码请求是否来自带有位置传感器的设备。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse_timezone(query, at_time=None, timeout=DEFAULT_SENTINEL)

query 中找到指定的 `at_time`时区.

1.18.0 新版功能.

在 1.18.1 版更改: 先前 :类:`KeyError` 在没有指定Olson时区ID的情况下提升了一个点(例如,对于南极洲)。现在,此方法对于此类请求不返回任何值。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s") -- 需要时区的坐标。

  • at_time (datetime.datetime or None) -- 您希望此位置的时区的时间。这是可选的,默认为以UTC格式调用函数的时间。时区感知的日期时间被正确处理,原始日期时间被静默地视为UTC。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

None or geopy.timezone.Timezone

timezone(location, at_time=None, timeout=DEFAULT_SENTINEL)

找到一个 location 所在的时区为指定的 at_time, 并返回PYTZ时区对象。

1.2.0 新版功能.

1.18.0 版后已移除: 使用 GoogleV3.reverse_timezone() 代替。此方法将在Geopy 2.0中删除。

在 1.18.1 版更改: 先前 :类:`KeyError` 在没有指定Olson时区ID的情况下提升了一个点(例如,对于南极洲)。现在,此方法对于此类请求不返回任何值。

参数
  • location (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s") -- 需要时区的坐标。

  • at_time (datetime.datetime or None) -- 您希望此位置的时区的时间。这是可选的,默认为以UTC格式调用函数的时间。时区感知的日期时间被正确处理,原始日期时间被静默地视为UTC。…versionChanged::1.18.0之前,此参数接受原始UNIX时间戳为int或float。现在不赞成使用日期时间,并且将在geopy 2.0中删除对数字的支持。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

None 或者Pytz时区。见 pytz.timezone() .

HERE

class geopy.geocoders.Here(app_id, app_code, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)

Geocoder使用HERE Geocoder API。

文件地址:

https://developer.here.com/documentation/geocoder/

1.15.0 新版功能.

__init__(app_id, app_code, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, bbox=None, mapview=None, exactly_one=True, maxresults=None, pageinformation=None, language=None, additional_data=False, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

这个实现仅支持所有可用参数的子集。 此处提供了纯REST API的所有参数列表:https://developer.here.com/documentation/geocoder/topics/resource-geocode.html

参数
  • query (str) -- 要对其进行地理编码的地址或查询。对于结构化查询,提供其键为以下之一的字典: city, county, district, country, state, street, housenumber, 或 postalcode.

  • bbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 一种空间过滤器,限制对请求中任何其他属性的搜索。由两对坐标(lat/lon)指定--框的角。 The bbox search is currently similar to mapview but it is not extended (引自 REST API文档)。还将返回相关的全局结果。例如: [Point(22, 180), Point(-22, -180)] .

  • mapview (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 应用程序的视区,作为两个坐标对给出,由两个lat/lon对指定——分别是边界框的角。从集合地图视图加上扩展区域中的匹配项排名最高。还将返回相关的全局结果。例如: [Point(22, 180), Point(-22, -180)] .

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • maxresults (int) -- 定义响应结构中的最大项数。如果没有提供,并且有多个结果, HERE API将默认返回10个结果。如果 exactly_one 是True,则将重置为1。

  • pageinformation (int) -- 当响应被分成多个页时,标识要返回的页的键。仅在提供“maxresults”时才有用。

  • language (str) -- 影响响应的语言,必须是RFC 4647语言代码,例如“en-US”。

  • additional_data (str) -- 具有键值对的字符串,如https://developer.here.com/documentation/geocoder/topics/resource-params-additional.html中所述。 这些将作为一个查询参数添加到URL。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, radius=None, exactly_one=True, maxresults=None, pageinformation=None, language=None, mode='retrieveAddresses', timeout=DEFAULT_SENTINEL)

按地点返回地址。

此实现仅支持所有可用参数的子集。 此处提供了纯REST API的所有参数列表:https://developer.here.com/documentation/geocoder/topics/resource-reverse-geocode.html

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • radius (float) -- 接近半径(米)。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • maxresults (int) -- 定义响应结构中的最大项数。如果没有提供,并且有多个结果, HERE API将默认返回10个结果。如果 exactly_one 是True,则将重置为1。

  • pageinformation (int) -- 当响应被分成多个页时,标识要返回的页的键。仅在提供“maxresults”时才有用。

  • language (str) -- 影响响应的语言,必须是RFC 4647语言代码,例如“en-US”。

  • mode (str) -- 影响返回的响应项的类型,必须是“retrieveAddresses”(默认)、“retrieveAreas”、“retrieveLandmarks”、“retrieveAll”或“trackPosition”之一。有关详细信息,请参阅联机文档。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

IGNFrance

class geopy.geocoders.IGNFrance(api_key, username=None, password=None, referer=None, domain='wxs.ign.fr', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

使用ign france geocoder opens api的geocoder。

文件地址:

https://geoservices.ign.fr/documentation/geoservices/index.html

__init__(api_key, username=None, password=None, referer=None, domain='wxs.ign.fr', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, query_type='StreetAddress', maximum_responses=25, is_freeform=False, filtering=None, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要地理编码的查询字符串。

  • query_type (str) -- 提供地理编码的类型。它可以 PositionOfInterest, StreetAddressCadastralParcel. StreetAddress 如果未提供,则为默认选项。

  • maximum_responses (int) -- 查询正文中请求API的最大响应数。

  • is_freeform (str) -- 设置返回是使用自由形式结构还是更结构化的返回。默认情况下,值为假。

  • filtering (str) -- 提供有助于设置地理编码过滤器的字符串。它包含一个XML字符串。参见文档中的示例和目录测试中的ignfrance.py文件。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, reverse_geocode_preference=('StreetAddress', ), maximum_responses=25, filtering='', exactly_one=DEFAULT_SENTINEL, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • reverse_geocode_preference (list) -- 启用以设置预期的结果类型。它可以 StreetAddressPositionOfInterest. 默认设置为 StreetAddress.

  • maximum_responses (int) -- 查询正文中请求API的最大响应数。

  • filtering (str) -- 提供有助于设置地理编码过滤器的字符串。它包含一个XML字符串。参见文档中的示例和目录测试中的ignfrance.py文件。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。…versionChanged::1.14.0的默认值 exactly_one 的默认值是 False 与传统的geopy违约不同。请始终明确传递此参数,否则将收到警告。在Geopy 2.0中,默认值将变为 True .

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

MapBox

class geopy.geocoders.MapBox(api_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, domain='api.mapbox.com')

使用mapbox api的地理编码。

文件地址:

https://www.mapbox.com/api-documentation/

1.17.0 新版功能.

__init__(api_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, domain='api.mapbox.com')
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, proximity=None, country=None, bbox=None)

按地址返回位置点

在 1.20.0 版更改: 以前由于一个错误,结果 geopy.location.Locationraw 属性包含单个字符串,而不是完整的服务响应。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 返回一个结果或结果列表(如果可用)。…VersionChanged::1.20.0之前由于错误,此参数不受尊重。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • proximity (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 根据提供的位置偏移局部结果的坐标。

  • country (str or list) -- 以ISO 3166-1α-2国家代码的形式筛选结果的国家(例如 FR )可能是字符串的python列表。…versionChanged::1.19.0以前只能指定一个字符串。现在支持单个国家的python列表。

  • bbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 视区的边界框,在其中偏向地理编码的结果更突出。例子: [Point(22, 180), Point(-22, -180)] .

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地点返回地址。

在 1.20.0 版更改: 以前由于一个错误,结果 geopy.location.Locationraw 属性包含单个字符串,而不是完整的服务响应。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

OpenCage

class geopy.geocoders.OpenCage(api_key, domain='api.opencagedata.com', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

使用OpenCageData API的地理编码。

文件地址:

https://opencagedata.com/api

1.1.0 新版功能.

__init__(api_key, domain='api.opencagedata.com', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, bounds=None, country=None, language=None, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • language (str) -- iETF格式语言代码(例如 es 西班牙语或巴西葡萄牙语的pt-br);如果省略了 en (英语)将由远程服务承担。

  • bounds (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 向地理编码程序提供查询所在区域的提示。该值将有助于地理编码,但不会将可能的结果限制到所提供的区域。边界参数应指定为2个坐标点——边界框的角。例如: [Point(22, 180), Point(-22, -180)] . …versionChanged::1.17.0以前唯一支持的边界格式是 "longitude,latitude,longitude,latitude" . 此格式现在已被弃用,取而代之的是一对地理位置点的列表/元组,将在geopy 2.0中删除。

  • country (str or list) -- 将结果限制在指定的一个或多个国家。国家代码是由ISO 3166-1α2标准(例如 fr )可能是字符串的python列表。…versionChanged::1.19.0此参数以前似乎不受重视。此外,以前只能指定一个字符串。现在支持单个国家的python列表。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, language=None, exactly_one=DEFAULT_SENTINEL, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • language (str) -- 返回结果的语言。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。…versionChanged::1.14.0的默认值 exactly_one 的默认值是 False 与传统的geopy违约不同。请始终明确传递此参数,否则将收到警告。在Geopy 2.0中,默认值将变为 True .

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

OpenMapQuest

class geopy.geocoders.OpenMapQuest(api_key=None, format_string=None, view_box=None, bounded=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='open.mapquestapi.com', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL)

基类:geopy.geocoders.osm.Nominatim

使用MapQuest开放平台Web服务的地理编码。

文件地址:

https://developer.mapquest.com/documentation/open/

在 1.17.0 版更改: OpenMapQuest现在扩展了按名称类。

__init__(api_key=None, format_string=None, view_box=None, bounded=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='open.mapquestapi.com', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, addressdetails=False, language=False, geometry=None, extratags=False, country_codes=None, viewbox=None, bounded=None)

按地址返回位置点。

参数
  • query (dict or str) -- 要对其进行地理编码的地址、查询或结构化查询。…versionChanged::1.0.0对于结构化查询,请提供其键为以下之一的字典: street, city, county, state, country, 或 postalcode. 有关更多信息,请参见 structured requests: https://wiki.openstreetmap.org/wiki/Nominatim

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • limit (int) -- 从Nominatim返回的最大结果量。 除非 exact_one 设置为”,否则限制将始终为1。…添加的版本:1.13.0

  • addressdetails (bool) -- 如果你想要 Location.raw 要包含地址详细信息,如城市区等,请将其设置为“真”

  • language (str) -- 返回结果的首选语言。两者都使用标准 RFC2616 接受语言字符串或简单的以逗号分隔的语言代码列表。…添加的版本:1.0.0

  • geometry (str) -- 如果存在,指定地理编码服务是否应在 wkt, svg, kml, 或 geojson 格式。这是通过 raw 返回的属性 geopy.location.Location 对象获得。…添加的版本:1.3.0

  • extratags (bool) -- 如果可用,在结果中包括其他信息,例如维基百科链接、开放时间。…添加的版本:1.17.0

  • country_codes (str or list) -- 将搜索结果限制到特定国家(或国家列表)。国家/地区代码应为ISO 3166-1alpha2代码,例如 gb 对于联合王国, de 对于德国等…添加的版本:1.19.0

  • viewbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 限制搜索的坐标。例子: [Point(22, 180), Point(-22, -180)] . …添加的版本:1.19.0

  • bounded (bool) -- 将结果限制为仅包含在“边界视图”框中的项。默认为 False . …添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, addressdetails=True)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 返回结果的首选语言。两者都使用标准 RFC2616 接受语言字符串或简单的以逗号分隔的语言代码列表。…添加的版本:1.0.0

  • addressdetails (bool) -- 是否在* Location.raw * ..版本添加:: 1.14.0中包含地址详细信息,例如城市,县,州等

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

Nominatim

class geopy.geocoders.Nominatim(format_string=None, view_box=None, bounded=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='nominatim.openstreetmap.org', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL)

为openstreetmap数据指定地理编码。

文件地址:

https://wiki.openstreetmap.org/wiki/Nominatim

注意

强烈建议不要使用Nominatim和默认的`user_agent`,因为它违反了nomingim的使用策略http s://operations.osmfoundation.org/policies/nomingim/,可能导致403和429 HTTP错误。请确保指定自定义 user_agent 具有 Nominatim(user_agent="my-application") 或者通过覆盖默认值 user_agent: geopy.geocoders.options.default_user_agent = "my-application" . 在geopy 2.0中,当自定义 user_agent 未指定。

在 1.16.0 版更改: 当默认值为 user_agent 用于重述 Attention 块以上。

__init__(format_string=None, view_box=None, bounded=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='nominatim.openstreetmap.org', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
  • format_string (str) -- 见 geopy.geocoders.options.default_format_string .

  • view_box (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 限制搜索的坐标。例子: [Point(22, 180), Point(-22, -180)] . …versionChanged::1.15.0以前只支持字符串化坐标列表。…versionChanged::1.17.0以前的View_Box可以是4个字符串或数字的列表,格式为 [longitude, latitude, longitude, latitude] 。此格式现在已被弃用,取而代之的是一对地理位置点的列表/元组,将在地理位置2.0中删除。…已弃用::1.19.0此参数将在geopy 2.0中删除。使用 geocodeviewbox 相反。

  • bounded (bool) -- 将结果限制为仅包含在“边界视图”框中的项。…版本已添加::1.15.0..已弃用::1.19.0此参数将在geopy 2.0中删除。使用 geocodebounded 相反。

  • country_bias (str or list) -- 将搜索结果限制到特定国家。此参数为 geocodecountry_codes . …已弃用::1.19.0此参数将在geopy 2.0中删除。使用 geocodecountry_codes 相反。

  • timeout (int) -- 见 geopy.geocoders.options.default_timeout .

  • proxies (dict) -- 见 geopy.geocoders.options.default_proxies .

  • domain (str) -- 托管目标Nominatim服务的域。…添加的版本:1.8.2

  • scheme (str) -- 见 geopy.geocoders.options.default_scheme . …添加的版本:1.8.2

  • user_agent (str) -- 见 geopy.geocoders.options.default_user_agent . …添加的版本:1.12.0

  • ssl_context (ssl.SSLContext) -- 见 geopy.geocoders.options.default_ssl_context . …添加的版本:1.14.0

geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, addressdetails=False, language=False, geometry=None, extratags=False, country_codes=None, viewbox=None, bounded=None)

按地址返回位置点。

参数
  • query (dict or str) -- 要对其进行地理编码的地址、查询或结构化查询。…versionChanged::1.0.0对于结构化查询,请提供其键为以下之一的字典: street, city, county, state, country, 或 postalcode. 有关更多信息,请参见 structured requests: https://wiki.openstreetmap.org/wiki/Nominatim

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • limit (int) -- 从Nominatim返回的最大结果量。 除非 exact_one 设置为”,否则限制将始终为1。…添加的版本:1.13.0

  • addressdetails (bool) -- 如果你想要 Location.raw 要包含地址详细信息,如城市区等,请将其设置为“真”

  • language (str) -- 返回结果的首选语言。两者都使用标准 RFC2616 接受语言字符串或简单的以逗号分隔的语言代码列表。…添加的版本:1.0.0

  • geometry (str) -- 如果存在,指定地理编码服务是否应在 wkt, svg, kml, 或 geojson 格式。这是通过 raw 返回的属性 geopy.location.Location 对象获得。…添加的版本:1.3.0

  • extratags (bool) -- 如果可用,在结果中包括其他信息,例如维基百科链接、开放时间。…添加的版本:1.17.0

  • country_codes (str or list) -- 将搜索结果限制到特定国家(或国家列表)。国家/地区代码应为ISO 3166-1alpha2代码,例如 gb 对于联合王国, de 对于德国等…添加的版本:1.19.0

  • viewbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 限制搜索的坐标。例子: [Point(22, 180), Point(-22, -180)] . …添加的版本:1.19.0

  • bounded (bool) -- 将结果限制为仅包含在“边界视图”框中的项。默认为 False . …添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, addressdetails=True)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 返回结果的首选语言。两者都使用标准 RFC2616 接受语言字符串或简单的以逗号分隔的语言代码列表。…添加的版本:1.0.0

  • addressdetails (bool) -- 是否在* Location.raw * ..版本添加:: 1.14.0中包含地址详细信息,例如城市,县,州等

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

Pelias

class geopy.geocoders.Pelias(domain, api_key=None, format_string=None, boundary_rect=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL)

Pelias 地理编码器.

文件地址:

https://github.com/pelias/documentation

另见 geopy.geocoders.GeocodeEarth 这是一个基于Pelias的服务,由Pelias本身的开发人员提供。

在 1.15.0 版更改: Mapzen 地理编码已重命名为 Pelias .

__init__(domain, api_key=None, format_string=None, boundary_rect=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, boundary_rect=None, country_bias=None)

按地址返回位置点。

参数
  • query (str) -- 要进行地理编码的地理编码地址、查询或结构化查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • boundary_rect (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 限制搜索的坐标。例子: [Point(22, 180), Point(-22, -180)] . …添加的版本:1.19.0

  • country_bias (str) -- 对这个国家的偏见结果(iso alpha-3)。…添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

Photon

class geopy.geocoders.Photon(format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='photon.komoot.de', user_agent=None, ssl_context=DEFAULT_SENTINEL)

使用Photon地理编码服务的地理编码器(基于OpenStreetMap的数据和Komoot在https://photon.komoot.de上提供的服务)。

文件地址:

https://github.com/komoot/photon

Photon / Komoot地理编码器旨在让您在使用OpenStreetMap进行搜索时进行搜索。 此平台不需要API密钥。

__init__(format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='photon.komoot.de', user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, location_bias=None, language=False, limit=None, osm_tag=None)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • location_bias -- 用作位置偏差的坐标。

  • language (str) -- 返回结果的首选语言。

  • limit (int) -- 限制返回结果的数量,默认为无限制。…添加的版本:1.12.0

  • osm_tag (str or list or set) -- 按键和/或值筛选(包括/排除)的表达式,str为 'key:value' 如果需要多个过滤器,则列出/设置str ['key:!val', '!key', ':!value'] .

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, limit=None)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 返回结果的首选语言。

  • limit (int) -- 限制返回结果的数量,默认为无限制。…添加的版本:1.12.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

PickPoint

class geopy.geocoders.PickPoint(api_key, format_string=None, view_box=None, bounded=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='api.pickpoint.io', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL)

基类:geopy.geocoders.osm.Nominatim

Pickpoint geocoder是商业版的nominim。

文件地址:

https://pickpoint.io/api-reference

1.13.0 新版功能.

__init__(api_key, format_string=None, view_box=None, bounded=None, country_bias=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='api.pickpoint.io', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, addressdetails=False, language=False, geometry=None, extratags=False, country_codes=None, viewbox=None, bounded=None)

按地址返回位置点。

参数
  • query (dict or str) -- 要对其进行地理编码的地址、查询或结构化查询。…versionChanged::1.0.0对于结构化查询,请提供其键为以下之一的字典: street, city, county, state, country, 或 postalcode. 有关更多信息,请参见 structured requests: https://wiki.openstreetmap.org/wiki/Nominatim

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • limit (int) -- 从Nominatim返回的最大结果量。 除非 exact_one 设置为”,否则限制将始终为1。…添加的版本:1.13.0

  • addressdetails (bool) -- 如果你想要 Location.raw 要包含地址详细信息,如城市区等,请将其设置为“真”

  • language (str) -- 返回结果的首选语言。两者都使用标准 RFC2616 接受语言字符串或简单的以逗号分隔的语言代码列表。…添加的版本:1.0.0

  • geometry (str) -- 如果存在,指定地理编码服务是否应在 wkt, svg, kml, 或 geojson 格式。这是通过 raw 返回的属性 geopy.location.Location 对象获得。…添加的版本:1.3.0

  • extratags (bool) -- 如果可用,在结果中包括其他信息,例如维基百科链接、开放时间。…添加的版本:1.17.0

  • country_codes (str or list) -- 将搜索结果限制到特定国家(或国家列表)。国家/地区代码应为ISO 3166-1alpha2代码,例如 gb 对于联合王国, de 对于德国等…添加的版本:1.19.0

  • viewbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 限制搜索的坐标。例子: [Point(22, 180), Point(-22, -180)] . …添加的版本:1.19.0

  • bounded (bool) -- 将结果限制为仅包含在“边界视图”框中的项。默认为 False . …添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, addressdetails=True)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 返回结果的首选语言。两者都使用标准 RFC2616 接受语言字符串或简单的以逗号分隔的语言代码列表。…添加的版本:1.0.0

  • addressdetails (bool) -- 是否在* Location.raw * ..版本添加:: 1.14.0中包含地址详细信息,例如城市,县,州等

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

LiveAddress

class geopy.geocoders.LiveAddress(auth_id, auth_token, candidates=None, scheme='https', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

使用SmartSystems提供的LiveAddress API进行地理编码。

文件地址:

https://smartystreets.com/docs/cloud/us-street-api

__init__(auth_id, auth_token, candidates=None, scheme='https', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, format_string=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, candidates=None)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • candidates (int) -- 一个介于1和10之间的整数,表示如果找到有效地址,将返回的候选地址的最大数目。默认为 1 . …添加的版本:1.19.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

TomTom

class geopy.geocoders.TomTom(api_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, domain='api.tomtom.com')

TomTom地理编码。

文件地址:

https://developer.tomtom.com/online-search/online-search-documentation

1.15.0 新版功能.

__init__(api_key, format_string=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, domain='api.tomtom.com')
参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, typeahead=False, language=None)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • limit (int) -- 要从服务返回的最大结果量。除非exact_one设置为False,否则限制将始终为1。

  • typeahead (bool) -- 如果设置了“typeahead”标志,查询将被解释为部分输入,搜索将进入预测模式。

  • language (str) -- 应返回搜索结果的语言。 如果指定语言的数据不适用于特定字段,则使用默认语言。 支持的语言列表(不区分大小写):https://developer.tomtom.com/online-search/online-search-documentation/supported-languages

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=True, timeout=DEFAULT_SENTINEL, language=None)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • language (str) -- 应返回搜索结果的语言。 如果指定语言的数据不适用于特定字段,则使用默认语言。 支持的语言列表(不区分大小写):https://developer.tomtom.com/online-search/online-search-documentation/supported-languages .. versionadded:: 1.18.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

What3Words

class geopy.geocoders.What3Words(api_key, format_string=None, scheme='https', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)

What3Words地理编码器。

文件地址:

https://docs.what3words.com/api/v2/

1.5.0 新版功能.

在 1.15.0 版更改: API已更新为v2。

__init__(api_key, format_string=None, scheme='https', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL)
参数
geocode(query, lang='en', exactly_one=True, timeout=DEFAULT_SENTINEL)

返回 3 words 查询。如果 3 words 地址不存在,a geopy.exc.GeocoderQueryError 将引发异常。

参数
  • query (str) -- 您希望地理编码的3字地址。

  • lang (str) -- aPI支持的两个字符语言代码(https://docs.what3words.com/api/v2/#lang)。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。由于地址方案的原因,每个结果始终只有一个 3 words 地址,所以这个参数对于这个地理编码程序是相当无用的。…版本更改::1.14.0 exactly_one=False 现在返回单个位置的列表。这个选择以前不受尊重。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

如果 exactly_one=False geopy.location.Location 或者他们的清单 .

reverse(query, lang='en', exactly_one=True, timeout=DEFAULT_SENTINEL)

按位置点返回 3 words 地址。表面上的每个点都有一个 3 words 地址,所以总是有一个非空的响应。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 要获得3个字地址的坐标。

  • lang (str) -- aPI支持的两个字符语言代码(https://docs.what3words.com/api/v2/#lang)。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。由于地址方案的原因,每个结果始终只有一个 3 words 地址,所以这个参数对于这个地理编码程序是相当无用的。…版本更改::1.14.0 exactly_one=False 现在返回单个位置的列表。这个选择以前不受尊重。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

如果 exactly_one=False geopy.location.Location 或者他们的清单 .

Yandex

class geopy.geocoders.Yandex(api_key=None, lang=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

Yandex地理编码。

文件地址:

https://tech.yandex.com/maps/doc/geocoder/desc/concepts/input_params-docpage/

1.5.0 新版功能.

__init__(api_key=None, lang=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, format_string=None, ssl_context=DEFAULT_SENTINEL)

在 1.14.0 版更改: 默认方案已从更改为 httphttps .

参数
geocode(query, exactly_one=True, timeout=DEFAULT_SENTINEL)

按地址返回位置点。

参数
  • query (str) -- 要对其进行地理编码的地址或查询。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

reverse(query, exactly_one=DEFAULT_SENTINEL, timeout=DEFAULT_SENTINEL, kind=None)

按地点返回地址。

参数
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望获得最接近人类可读地址的坐标。

  • exactly_one (bool) -- 如果可用,返回一个结果或结果列表。…versionChanged::1.14.0的默认值 exactly_one 的默认值是 False 与传统的geopy违约不同。请始终明确传递此参数,否则将收到警告。在Geopy 2.0中,默认值将变为 True .

  • timeout (int) -- 等待地理编码服务响应的时间(秒),然后引发 geopy.exc.GeocoderTimedOut 例外。仅当您希望在这个调用上覆盖在地理编码程序初始化期间设置的值时,才设置这个值。

  • kind (str) -- 地名类型。允许值: house, street, metro, district, locality. …添加的版本:1.14.0

返回类型

Nonegeopy.location.Location 或者他们的列表,如果 exactly_one=False .

计算距离

Geopy可以用 geodesic distancegreat-circle distance ,默认测地线距离作为函数 geopy.distance.distance .

大圆距离( great_circle )使用地球的球形模型,使用国际大地测量学和地球物理学联合会定义的平均地球半径,(2)a + b) /3=6371.0087714150598公里,约6371.009公里(WGS-84),误差高达0.5%。半径值存储在 distance.EARTH_RADIUS ,因此可以对其进行自定义(但是,它应该始终以公里为单位)。

测地距离是地球椭球面模型表面上最短的距离。默认算法使用的方法是 Karney (2013) (geodesic) ;这是精确的四舍五入并始终收敛。年长的 deprecated 方法由于 Vincenty (1975) (vincenty) 也可用;这仅精确到0.2 mm,距离计算无法收敛到几乎相反的点。

geopy.distance.distance 目前使用 geodesic .

有许多流行的椭球体模型,哪一个模型最精确取决于你的点在地球上的位置。默认值是WGS-84椭球体,它是全局最精确的。geopy还包括 distance.ELLIPSOIDS 字典:

              model             major (km)   minor (km)     flattening
ELLIPSOIDS = {'WGS-84':        (6378.137,    6356.7523142,  1 / 298.257223563),
              'GRS-80':        (6378.137,    6356.7523141,  1 / 298.257222101),
              'Airy (1830)':   (6377.563396, 6356.256909,   1 / 299.3249646),
              'Intl 1924':     (6378.388,    6356.911946,   1 / 297.0),
              'Clarke (1880)': (6378.249145, 6356.51486955, 1 / 293.465),
              'GRS-67':        (6378.1600,   6356.774719,   1 / 298.25),
              }

以下是 distance.distance 用法:

>>> from geopy import distance
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(distance.distance(newport_ri, cleveland_oh).miles)
538.39044536

>>> wellington = (-41.32, 174.81)
>>> salamanca = (40.96, -5.50)
>>> print(distance.distance(wellington, salamanca).km)
19959.6792674

上面的第二个例子失败了 vincenty .

使用 great_circle 距离:

>>> print(distance.great_circle(newport_ri, cleveland_oh).miles)
536.997990696

您可以更改测地公式使用的椭球体模型,如下所示:

>>> ne, cl = newport_ri, cleveland_oh
>>> print(distance.geodesic(ne, cl, ellipsoid='GRS-80').miles)

上述型号名称将自动从 distance.ELLIPSOIDS 字典。或者,可以直接指定模型值:

>>> distance.geodesic(ne, cl, ellipsoid=(6377., 6356., 1 / 297.)).miles

距离支持简单的算法,使计算路径长度等操作变得容易:

>>> from geopy import Nominatim
>>> d = distance.distance
>>> g = Nominatim(user_agent="specify_your_app_name_here")
>>> _, wa = g.geocode('Washington, DC')
>>> _, pa = g.geocode('Palo Alto, CA')
>>> print((d(ne, cl) + d(cl, wa) + d(wa, pa)).miles)
3277.30439191
geopy.distance.lonlat(x, y, z=0)

geopy.distance.distance 接受坐标 (y, x) / (lat, lon) 顺序,而其他一些库和系统可能会使用 (x, y) / (lon, lat) .

此函数提供了一种方便的方法来转换 (x, y) / (lon, lat) 格式转换为 geopy.point.Point 实例。

例子::

>>> from geopy.distance import lonlat, distance
>>> newport_ri_xy = (-71.312796, 41.49008)
>>> cleveland_oh_xy = (-81.695391, 41.499498)
>>> print(distance(lonlat(*newport_ri_xy), lonlat(*cleveland_oh_xy)).miles)
538.3904453677203
参数
  • x -- 经度

  • y -- 纬度

  • z -- (可选)高度

返回

点(纬度、经度、海拔)

class geopy.distance.geodesic(*args, **kwargs)

计算两点间的测地线距离。

通过指定 ellipsoid 关键字参数。默认值是“WGS-84”,它是最全局精确的模型。如果 ellipsoid 是一个字符串,它在 ELLIPSOIDS 字典获得大、小半轴和展平。否则,它应该是具有这些值的元组。请参见上面的注释 ELLIPSOIDS 字典了解更多信息。

例子::

>>> from geopy.distance import geodesic
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(geodesic(newport_ri, cleveland_oh).miles)
538.390445368

1.13.0 新版功能.

__init__(*args, **kwargs)

初始化自身。请参阅帮助(键入(self))以获得准确的签名。

class geopy.distance.vincenty(*args, **kwargs)

1.13 版后已移除: 使用:class:`.geodesic`代替。 Vincenty将在geopy 2.0中删除。

用文森蒂方法计算两点间的测地线距离。

通过指定 ellipsoid 关键字参数。默认值是“WGS-84”,它是最全局精确的模型。如果 ellipsoid 是一个字符串,它在 ELLIPSOIDS 字典获得大、小半轴和展平。否则,它应该是具有这些值的元组。请参见上面的注释 ELLIPSOIDS 字典了解更多信息。

例子::

>>> from geopy.distance import vincenty
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(vincenty(newport_ri, cleveland_oh).miles)
538.390445362

注意:Vincenty的距离计算方法无法收敛到一些有效的(几乎是反足的)点。在这种情况下,使用 geodesic 它总是产生一个准确的结果。

__init__(*args, **kwargs)

初始化自身。请参阅帮助(键入(self))以获得准确的签名。

class geopy.distance.great_circle(*args, **kwargs)

使用球面几何计算两点之间的表面距离。

通过指定 radius 关键字参数来设置要使用的地球半径。必须以公里为单位。默认值是使用模块常量 EARTH_RADIUS, 它使用平均大圆半径。

例子::

>>> from geopy.distance import great_circle
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(great_circle(newport_ri, cleveland_oh).miles)
536.997990696
__init__(*args, **kwargs)

初始化自身。请参阅帮助(键入(self))以获得准确的签名。

数据

class geopy.location.Location(address='', point=None, raw=None)

包含已分析的地理编码程序响应。可以迭代为 (location<String>, (latitude<float>, longitude<Float)) . 或者可以访问属性 addresslatitudelongituderaw . 最后是一个关于该项目的地理编码响应的字典。

property address

地理编码程序返回的格式化字符串或由Geopy构造的位置,具体取决于服务。

返回类型

unicode

property altitude

位置的高度。

返回类型

float or None

property latitude

位置的纬度。

返回类型

float or None

property longitude

位置的经度。

返回类型

float or None

property point

geopy.point.Point 表示位置的纬度、经度和高度的实例。

返回类型

geopy.point.Point 或None

property raw

位置的原始、未分析的地理编码响应。有关详细信息,请参阅服务的文档。

返回类型

dict or None

class geopy.point.Point

具有纬度、经度和高度的大地测量点。

纬度和经度是以度为单位的浮点值。高度是以公里为单位的浮点值。参考水平从未被考虑过,因此依赖于应用程序,所以要一致!所有值的默认值为0。

可以通过多种方式创建点…

纬度、经度和高度:

>>> p1 = Point(41.5, -81, 0)
>>> p2 = Point(latitude=41.5, longitude=-81)

具有0到3个值的序列(纬度、经度、高度)::

>>> p1 = Point([41.5, -81, 0])
>>> p2 = Point((41.5, -81))

复制另一个`Point`实例:

>>> p2 = Point(p1)
>>> p2 == p1
True
>>> p2 is p1
False

给出至少包含纬度和经度的字符串:

>>> p1 = Point('41.5,-81.0')
>>> p2 = Point('41.5 N -81.0 W')
>>> p3 = Point('-41.5 S, 81.0 E, 2.5km')
>>> p4 = Point('23 26m 22s N 23 27m 30s E 21.0mi')
>>> p5 = Point('''3 26' 22" N 23 27' 30" E''')

点值可以通过名称或索引访问:

>>> p = Point(41.5, -81.0, 0)
>>> p.latitude == p[0]
True
>>> p.longitude == p[1]
True
>>> p.altitude == p[2]
True

解包(或迭代)时,返回一个 (latitude, longitude, altitude) 元组::

>>> latitude, longitude, altitude = p
static __new__(cls, latitude=None, longitude=None, altitude=None)
参数
  • latitude (float) -- 点的纬度。

  • longitude (float) -- 点的经度。

  • altitude (float) -- 点的高度。

classmethod from_point(point)

创建并返回新的 Point 从另一个实例 Point 实例。

classmethod from_sequence(seq)

从任何具有0到3个元素的iterable中创建并返回一个新的``Point``实例。元素(如果存在)必须分别是纬度、经度和高度。

classmethod from_string(string)

从包含纬度和经度以及可选高度的字符串中引用创建并返回 Point

纬度和经度必须以度为单位,可以是十进制形式,也可以表示弧分和弧秒(用Unicode Prime和Double Prime、ASCII Quote和Double Quote或'M'和'S'标记)。度数符号是可选的,可以在小数点后(以十进制形式)和arcminutes和arseconds之前包含。从南部和西部给出的坐标(用S和W后缀表示)将通过转换其符号转换为北和东。如果没有给出(或部分)基本方向,则假定方向为北和东。纬度和经度必须至少用空格、逗号或分号分隔(每个空格周围都有可选的空格)。

高度,如果提供,必须是带给定单位的十进制数字。支持以下单元缩写(不区分大小写):

  • km (公里)

  • m (米)

  • mi (英里)

  • ft (脚)

  • nmnmi (海里)

一些可用的示例字符串包括:

  • 41.5;-81.0

  • 41.5,-81.0

  • 41.5 -81.0

  • 41.5 N -81.0 W

  • -41.5 S;81.0 E

  • 23 26m 22s N 23 27m 30s E

  • 23 26' 22" N 23 27' 30" E

  • UT: N 39°20' 0'' / W 74°35' 0''

class geopy.timezone.Timezone(pytz_timezone, raw=None)

包含时区请求的解析响应,该响应在提供此类查找的少数地理代码中实现。

1.18.0 新版功能.

property pytz_timezone

pytz时区实例。

返回类型

pytz.tzinfo.BaseTzInfo

property raw

时区的原始、未分析的地理编码响应。有关详细信息,请参阅服务的文档。

返回类型

dict or None

例外情况

class geopy.exc.GeopyError

基类:Exception

特定于Geopy的异常都是从GeopyError继承而来的。

class geopy.exc.ConfigurationError

基类:geopy.exc.GeopyError

在实例化地理编码程序时,给出的参数无效。请参阅每个地理编码器的文档 __init__ 了解更多详细信息。

class geopy.exc.GeocoderServiceError

基类:geopy.exc.GeopyError

调用远程地理编码服务时发生异常,地理信息不能再引发更具体的异常。调用geocoder的 geocodereverse 方法时,这是可以引发的最通用的异常,任何非geopy异常都将被捕获并转换为该异常。异常的消息将是原始异常的消息。

class geopy.exc.GeocoderQueryError

基类:geopy.exc.GeocoderServiceError

Geopy检测到可能导致请求失败的输入,或者发出了请求,远程地理编码服务响应该请求是错误的。

class geopy.exc.GeocoderQuotaExceeded

基类:geopy.exc.GeocoderServiceError

远程地理编码服务拒绝完成请求,因为客户端已使用其配额。

class geopy.exc.GeocoderAuthenticationFailure

基类:geopy.exc.GeocoderServiceError

远程地理编码服务拒绝使用此地理编码程序实例化的API密钥或帐户凭据。

class geopy.exc.GeocoderInsufficientPrivileges

基类:geopy.exc.GeocoderServiceError

远程地理编码服务拒绝使用给定的帐户凭据完成请求。

class geopy.exc.GeocoderTimedOut

基类:geopy.exc.GeocoderServiceError

对地理编码服务的调用已中止,因为在 timeout geocoding类或方法调用(如果指定)的参数。有些服务的速度一直很慢,使用它们可能需要更高的超时。

class geopy.exc.GeocoderUnavailable

基类:geopy.exc.GeocoderServiceError

要么是无法建立到远程地理编码服务的连接,要么是服务响应了一个指示它不可用的代码。

class geopy.exc.GeocoderParseError

基类:geopy.exc.GeocoderServiceError

Geopy无法分析服务的响应。这可能是由于地地形的一个错误造成的。

class geopy.exc.GeocoderNotFound

基类:geopy.exc.GeopyError

调用者请求与字符串匹配的地理编码程序,例如, "google" > GoogleV3 ,但找不到地理编码。

登录

geopy将使用记录器名称记录geocoding url geopy 在水平 DEBUG, 对于某些地理编码程序,这些URL将包含身份验证信息。

带有不成功状态代码的响应的HTTP主体记录为 INFO 水平。

默认日志记录级别为 NOTSET, 它将消息处理委托给根记录器。查看文档 logging.Logger.setLevel() 更多信息。

Semver

geopy尝试遵循语义版本控制,但是一些突破性的更改仍在小版本中进行,例如:

  • 未记录的API的向后不兼容更改。这不应该影响任何人,除非他们扩展了地理编码类,或者使用了未记录的特性或者猴子补丁。如果您认为Geopy中缺少某些内容,请考虑打开一个问题或提供补丁或公关,而不是在Geopy周围进行黑客攻击。

  • 仅仅不起作用的地理编码类(通常是因为它们的服务已经中断)可能会被删除。不管怎样,它们都不起作用,所以这几乎不是一个突破性的改变,对吧?:)

  • 地理编码服务有时会引入新的API并贬低以前的API。我们试图在不破坏地理编码程序API接口的情况下进行升级,但是 geopy.location.Location.raw 值可能以向后不兼容的方式更改。

  • 无效输入和特殊边缘情况的行为可能会改变。例如, geopy.point.Point 虽然没有文档记录,但实例确实进行了坐标值规范化,而且对于超出`[-90;90]`范围的纬度来说,这是完全错误的。因此,不要使用不正确的纬度标准化值, ValueError 现在抛出异常(#294)。

为了减少升级的痛苦,请在升级之前阅读变更日志。

Changelog

Changelog for 1.x.x series .

有关0.9系列中的更改,请参见 0.9x changelog .