歡迎使用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 .