歡迎使用Geopy文檔!?

GeoPy徽標
文檔

https://geopy.readthedocs.io/

源代碼

https://github.com/geopy/geopy

堆棧溢出

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

地理信息系統堆棧交換

https://gis.stackexchange.com/questions/tagged/geopy

討論

https://github.com/geopy/geopy/discussions

問題跟蹤器

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

PyPI

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

geopy是幾個流行的地理編碼web服務的Python客戶機。

geopy使python開發人員能夠使用第三方地理編碼程序和其他數據源輕松定位全球各地的地址、城市、國家和地標的坐標。

Geopy針對CPython(版本3.5、3.6、3.7、3.8、3.9)和PyPy3進行了測試。Geopy 1.x行還支持CPython2.7、3.4和PyPy2。

安裝?

pip install geopy

地理編碼器?

您可能使用的每個地理定位服務(如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.address , location.latitude , location.longitude , location.altitudelocation.raw . 最后一個包含對這個結果的完整地理編碼響應。

  • exactly_oneFalse ,并且至少有一個結果,返回 geopy.location.Location 對象,如上所述:

    [location, [...]]

如果服務不可用,或者返回非OK響應,或者在分配的超時時間內未收到響應,您將收到 Exceptions 詳見下文。

指定一次參數?

地理編碼方法接受許多不同的參數,您可能希望只指定其中一些參數一次,而不關心它們。

這很容易用Python實現 functools.partial() ::

>>> from functools import partial
>>> from geopy.geocoders import Nominatim

>>> geolocator = Nominatim(user_agent="specify_your_app_name_here")

>>> geocode = partial(geolocator.geocode, language="es")
>>> print(geocode("london"))
Londres, Greater London, Inglaterra, SW1A 2DX, Gran Breta?a
>>> print(geocode("paris"))
París, Isla de Francia, Francia metropolitana, Francia
>>> print(geocode("paris", language="en"))
Paris, Ile-de-France, Metropolitan France, France

>>> reverse = partial(geolocator.reverse, language="es")
>>> print(reverse("52.509669, 13.376294"))
Steinecke, Potsdamer Platz, Tiergarten, Mitte, 10785, Alemania

如果需要修改查詢,還可以使用lambda的一行程序。例如,如果您只需要對 Cleveland, Ohio 你可以這樣做:

>>> geocode = lambda query: geolocator.geocode("%s, Cleveland OH" % query)
>>> print(geocode("11111 Euclid Ave"))
Thwing Center, Euclid Avenue, Magnolia-Wade Park Historic District,
University Circle, Cleveland, Cuyahoga County, Ohio, 44106, United States
of America

lambda不接受夸格斯。如果你需要的話,你可以:

>>> _geocode = partial(geolocator.geocode, language="es")
>>> geocode = lambda query, **kw: _geocode("%s, Cleveland OH" % query, **kw)
>>> print(geocode("11111 Euclid Ave"))
Thwing Center, Euclid Avenue, Magnolia-Wade Park Historic District,
University Circle, Cleveland, Cuyahoga County, Ohio, 44106, Estados Unidos
>>> print(geocode("11111 Euclid Ave", language="en"))
Thwing Center, Euclid Avenue, Magnolia-Wade Park Historic District,
University Circle, Cleveland, Cuyahoga County, Ohio, 44106, United States
of America

地理游戲不是一種服務?

地理編碼由許多不同的服務提供,這些服務與geopy沒有任何關系。這些服務提供了任何人都可以實現的api,geopy只是一個在單個包中為許多不同服務提供這些實現的庫。

_images/geopy_and_geocoding_services.svg

因此:

  1. 不同的服務有不同的使用條款、配額、定價、地理數據庫等等。例如, Nominatim 是免費的,但提供低請求限制。如果您需要進行更多的查詢,可以考慮使用其他(可能是付費的)服務,例如 OpenMapQuestPickPoint (這兩個是提名的商業提供者,因此它們應該具有相同的數據和API)?;蛘?,如果你準備好等待,你可以嘗試 geopy.extra.rate_limiter .

  2. geopy不負責地理編碼服務的數據庫。如果您對服務無法完成的某些查詢有問題,應該將其定向到該服務的支持團隊。

  3. geopy不對您的計算機和地理編碼服務之間的任何網絡問題負責。

如果您與當前的地理編碼服務提供商有任何問題,您可以隨時嘗試另一個。

異步模式?

默認情況下,geopy地理編碼器是同步的(即他們使用基于 BaseSyncAdapter

通過簡單地切換到基于 BaseAsyncAdapter (像 AioHTTPAdapter

例子::

from geopy.adapters import AioHTTPAdapter
from geopy.geocoders import Nominatim

async with Nominatim(
    user_agent="specify_your_app_name_here",
    adapter_factory=AioHTTPAdapter,
) as geolocator:
    location = await geolocator.geocode("175 5th Avenue NYC")
    print(location.address)

基本上,用法與同步模式中的用法相同,只是所有geocoder調用都應與一起使用 await ,并且geocoder實例應該由 async with . 上下文管理器是可選的,但是強烈建議使用它來避免資源泄漏。

訪問地理編碼器?

檢索geocoder類的典型方法是從 geopy.geocoders 包裹::

from geopy.geocoders import Nominatim
geopy.geocoders.get_geocoder_for_service(service)?

對于提供的服務,請嘗試返回地理編碼程序類。

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

如果無法識別給定的字符串,則 geopy.exc.GeocoderNotFound 引發異常。

鑒于幾乎所有的地理編碼器都提供 geocode 方法它可用于完全基于用戶輸入進行基本查詢:

from geopy.geocoders import get_geocoder_for_service

def geocode(geocoder, config, query):
    cls = get_geocoder_for_service(geocoder)
    geolocator = cls(**config)
    location = geolocator.geocode(query)
    return location.address

>>> geocode("nominatim", dict(user_agent="specify_your_app_name_here"), "london")
'London, Greater London, England, SW1A 2DX, United Kingdom'
>>> geocode("photon", dict(), "london")
'London, SW1A 2DX, London, England, United Kingdom'

默認選項對象?

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_adapter_factory

一個返回 geopy.adapters.BaseAdapter 實例。適配器是HTTP客戶機的不同實現??吹搅藛?geopy.adapters 更多信息。

此callable接受兩個關鍵字參數: proxiesssl_context . 也可以將類指定為此可調用類。

例子::

import geopy.geocoders
geopy.geocoders.options.default_adapter_factory = geopy.adapters.URLLibAdapter

geopy.geocoders.options.default_adapter_factory = (
    lambda proxies, ssl_context: MyAdapter(
        proxies=proxies, ssl_context=ssl_context, my_custom_arg=42
    )
)

如果 requests 軟件包已安裝,默認適配器為 geopy.adapters.RequestsAdapter . 否則就是了 geopy.adapters.URLLibAdapter .

在 2.0 版本加入.

default_proxies

通過HTTP代理對請求進行隧道處理。

默認情況下,系統代理是受尊重的(例如 HTTP_PROXYHTTPS_PROXY env vars或平臺特定的代理設置,如macos或windows本機首選項--請參見 urllib.request.getproxies() 了解更多詳細信息)。這個 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.getproxies() .

default_scheme

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

default_ssl_context

ssl.SSLContext 具有自定義TLS驗證設置的實例。通過 None 默認使用CA的證書。

使用 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 禁用超時。

default_user_agent

要與請求一起發送到geocoder api的用戶代理頭。

default_adapter_factory?

RequestsAdapter 的別名

default_proxies = None?
default_scheme = 'https'?
default_ssl_context = None?
default_timeout = 1?
default_user_agent = 'geopy/2.2.0'?

與 Pandas 一起使用?

可以用geopy對pandas數據幀進行地理編碼,但是必須考慮速率限制。

大量的 DataFrame 行可能會對地理編碼服務產生大量的地理編碼請求,這些請求可能會受到服務的限制(例如,通過返回 Too Many Requests 429 HTTP錯誤或超時)。

geopy.extra.rate_limiter 類提供了一個方便的包裝器,可用于在地理編碼調用之間自動添加延遲,以減少地理編碼服務的負載。此外,它還可以重試失敗的請求,并吞下單個行的錯誤。

如果你有 Too Many Requests 錯誤,您可以嘗試以下操作:

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

  • 嘗試不同的地理編碼服務(請先咨詢他們的TOS,因為有些服務禁止批量地理編碼)。

  • 對所選的地理編碼服務采取付費計劃,這將提供更高的配額。

  • 提供您自己的地理編碼服務的本地副本(如nomingim)。

速率限制器?

RateLimiterAsyncRateLimiter 允許執行批量操作,同時優雅地處理錯誤響應并在需要時添加延遲。

在下面的示例中,每對 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,該服務可能會明確地認為批量請求(甚至被限制)是一種違規行為。

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)?

這是同步函數的速率限制器實現(比如默認的geocoders geopy.adapters.BaseSyncAdapter

實例:

from geopy.extra.rate_limiter import RateLimiter
from geopy.geocoders import Nominatim

geolocator = Nominatim(user_agent="specify_your_app_name_here")

search = ["moscow", "paris", "berlin", "tokyo", "beijing"]
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
locations = [geocode(s) for s in search]

search = [
    (55.47, 37.32), (48.85, 2.35), (52.51, 13.38),
    (34.69, 139.40), (39.90, 116.39)
]
reverse = RateLimiter(geolocator.reverse, min_delay_seconds=1)
locations = [reverse(s) for s in search]

RateLimitor類是線程安全的。如果地理編碼服務的響應慢于 min_delay_seconds ,那么您可以從并行工作中獲益:

import concurrent.futures

geolocator = OpenMapQuest(api_key="...")
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1/20)

with concurrent.futures.ThreadPoolExecutor() as e:
    locations = list(e.map(geocode, search))

在 2.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) -- 由速率限制器包裝的函數。

  • min_delay_seconds (float) -- 包裝之間的最小延遲(秒) func 電話。轉換 RPS 費率到 min_delay_seconds 你需要把1除以RPS。例如,如果需要將速率保持在20 RPS,可以使用 min_delay_seconds=1/20 .

  • 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 失敗時返回的值.

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

這是異步函數的速率限制器實現(例如 geopy.adapters.BaseAsyncAdapter

實例:

from geopy.adapters import AioHTTPAdapter
from geopy.extra.rate_limiter import AsyncRateLimiter
from geopy.geocoders import Nominatim

async with Nominatim(
    user_agent="specify_your_app_name_here",
    adapter_factory=AioHTTPAdapter,
) as geolocator:

    search = ["moscow", "paris", "berlin", "tokyo", "beijing"]
    geocode = AsyncRateLimiter(geolocator.geocode, min_delay_seconds=1)
    locations = [await geocode(s) for s in search]

    search = [
        (55.47, 37.32), (48.85, 2.35), (52.51, 13.38),
        (34.69, 139.40), (39.90, 116.39)
    ]
    reverse = AsyncRateLimiter(geolocator.reverse, min_delay_seconds=1)
    locations = [await reverse(s) for s in search]

AsyncRateLimitor類可以安全地跨多個并發任務使用。如果地理編碼服務的響應慢于 min_delay_seconds ,那么您可以從并行工作中獲益:

import asyncio

async with OpenMapQuest(
    api_key="...", adapter_factory=AioHTTPAdapter
) as geolocator:

    geocode = AsyncRateLimiter(geolocator.geocode, min_delay_seconds=1/20)
    locations = await asyncio.gather(*(geocode(s) for s in search))

在 2.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) -- 由速率限制器包裝的函數。

  • min_delay_seconds (float) -- 包裝之間的最小延遲(秒) func 電話。轉換 RPS 費率到 min_delay_seconds 你需要把1除以RPS。例如,如果需要將速率保持在20 RPS,可以使用 min_delay_seconds=1/20 .

  • 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 失敗時返回的值.

AlgoliaPlaces?

class geopy.geocoders.AlgoliaPlaces(*, app_id=None, api_key=None, domain='places-dsn.algolia.net', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用Algolia Places API的地理編碼器。

文件地址:

https://community.algolia.com/places/documentation.html

__init__(*, app_id=None, api_key=None, domain='places-dsn.algolia.net', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, type=None, restrict_searchable_attributes=None, limit=None, language=None, countries=None, around=None, around_via_ip=None, around_radius=None, x_forwarded_for=None)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • type (str) -- 將搜索結果限制為特定類型??捎妙愋驮谖臋n中定義:https://community.algolia.com/places/api clients.htmlapi-選項類型

  • restrict_searchable_attributes (str) -- 限制進行搜索的字段。

  • limit (int) -- 限制響應中的最大項數。如果沒有提供,并且存在多個結果,Algolia API將默認返回20個結果。如果出現以下情況,將重置為1 exactly_one 是True。

  • language (str) -- 如果指定,則將搜索結果限制為單一語言。您可以傳遞兩個字母國家代碼(ISO 639-1)。

  • countries (list) -- 如果指定,則將搜索結果限制為特定的國家/地區列表。您可以傳遞兩個字母的國家代碼(ISO 3166-1)。

  • around (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 強制首先搜索特定經緯度。

  • around_via_ip (bool) -- 是否先搜索通過其IP地址找到的用戶的地理位置。默認情況下是這樣的。

  • around_radius (int) -- 以米為單位搜索經緯度的半徑。否則,將根據面積密度自動計算默認半徑。

  • x_forwarded_for (str) -- 重寫HTTP頭X-Forwarded-For。有了這個,你可以控制源IP地址用于解析用戶的地理位置。當您希望從后端使用API時,這一點特別有用,就像它是從最終用戶的位置使用一樣。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, 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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • limit (int) -- 限制響應中的最大項數。如果沒有提供,并且存在多個結果,Algolia API將默認返回20個結果。如果出現以下情況,將重置為1 exactly_one 是True。

  • language (str) -- 如果指定,則將搜索結果限制為單一語言。您可以傳遞兩個字母國家代碼(ISO 639-1)。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, 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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, 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="*" .

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, distance=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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • distance (int) -- 距離搜索的查詢位置的距離(以米為單位)。如果未指定,Arcgis的默認值為100米。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

AzureMaps?

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

基類:TomTom

基于TomTom的azuremaps地理編碼器。

文件地址:

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

__init__(subscription_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, 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

返回類型

None , geopy.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

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

百度?

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

使用百度地圖v2 API的地理編碼。

文件地址:

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

注意

新注冊的API密鑰不能與v2 API一起使用,請使用 BaiduV3 相反。

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, security_key=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.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最多只能返回一個結果。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

百渡v3?

class geopy.geocoders.BaiduV3(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, security_key=None)?

基類:Baidu

地理編碼器使用百度地圖v3api。

文件地址:

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

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, security_key=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.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最多只能返回一個結果。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

BANFrance?

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

使用基礎地址的地理編碼國家法國API。

文件地址:

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

__init__(*, domain='api-adresse.data.gouv.fr', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, limit=None, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

  • limit (int) -- 定義響應結構中的最大項數。如果沒有提供,并且有多個結果,BAN API將默認返回5個結果。如果 exactly_one 是True,則將重置為1。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

Bing?

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

使用Bing地圖位置API進行地理編碼。

文件地址:

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

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, user_location=None, timeout=DEFAULT_SENTINEL, culture=None, include_neighborhood=None, include_country_code=False)?

按地址返回位置點。

參數
  • query (str or dict) -- 要對其進行地理編碼的地址或查詢。對于結構化查詢,請提供其關鍵字為以下各項之一的字典: addressLine , locality (城市), adminDistrict (述明), countryRegion ,或 postalCode 。

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

  • user_location (geopy.point.Point) -- 確定靠近此位置的結果的優先級。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • culture (str) -- 影響響應的語言,必須是兩個字母的國家/地區代碼。

  • include_neighborhood (bool) -- 設置是否在響應中包含鄰域字段。

  • include_country_code (bool) -- 設置是否在響應中包含國家/地區的兩個字母的ISO代碼(字段名“countryRegioniso2”)。

返回類型

None , geopy.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”)。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

數據庫?

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

使用來自databc的物理地址地理碼器的地理碼器。

文件地址:

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

__init__(*, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

GeocodeEarth?

class geopy.geocoders.GeocodeEarth(api_key, *, domain='api.geocode.earth', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

基類:Pelias

geocode.earth,一個基于pelias的服務,由pelias本身的開發人員提供。

__init__(api_key, *, domain='api.geocode.earth', timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, boundary_rect=None, country_bias=None, language=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)] .

  • country_bias (str) -- 對這個國家的偏見結果(iso alpha-3)。

  • language (str) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

返回類型

None , geopy.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) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

GeocodeFarm?

在 2.2 版本發生變更: 由于服務太不可靠,此類已被刪除??匆?#445 。

Geocodio?

class geopy.geocoders.Geocodio(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用Geocod.io API的地理編碼器。

文件地址:

https://www.geocod.io/docs/

定價詳情:

https://www.geocod.io/pricing/

在 2.2 版本加入.

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, limit=None, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (dict or str) -- 要對其進行地理編碼的地址、查詢或結構化查詢。對于結構化查詢,請提供其關鍵字為以下各項之一的字典: street , city , state , postal_codecountry 。

  • limit (int) -- 要返回的最大匹配數。如果滿足以下條件,則該值將重置為1 exactly_oneTrue 。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None)?

按地點返回地址。

參數
  • query (str) -- 要獲取最接近的人類可讀地址的坐標

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • limit (int) -- 要返回的最大匹配數。如果滿足以下條件,則該值將重置為1 exactly_oneTrue 。

返回類型

None , geopy.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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用geolike api的地理編碼。

文件地址:

https://geolake.com/docs/api

服務條款:

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

__init__(api_key, *, domain='api.geolake.com', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, country_codes=None, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (str or dict) -- 要對其進行地理編碼的地址或查詢。對于結構化查詢,提供其鍵為以下之一的字典: country , state , city , zipcode , street , address , houseNumbersubNumber .

  • country_codes (str or list) -- 為地理編碼程序提供查詢可能駐留的國家/地區代碼列表。該值將把地理編碼限制在所提供的國家。國家代碼是由ISO-3166-1α-2標準(例如 FR )可以使用python列表指定多個國家/地區。

  • exactly_one (bool) -- 返回一個結果或一個結果的列表。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

GeoNames?

class geopy.geocoders.GeoNames(username, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, scheme='http')?

GeoNames 地理編碼器。

文件地址:

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

反向地理編碼文件:

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

__init__(username, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, 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 )可能是單個字符串或字符串列表。

  • country_bias (str) -- 首先列出來自國家/地區偏差的記錄。兩個字母的國家代碼ISO-3166。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

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

按地點返回地址。

參數
  • 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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • feature_code (str) -- GeoNames功能代碼

  • lang (str) -- 返回的語言 name 元素(偽語言代碼“local”將以本地語言返回)支持語言的完整列表可在以下位置找到:https://www.geonames.org/countries/

  • find_nearby_type (str) -- 用于在不同GeoNames API端點之間切換的標志。默認值為 findNearbyPlaceName 返回最近的居民點。另一個當前實現的選項是 findNearby 返回lat/lng查詢的最近地名。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse_timezone(query, *, timeout=DEFAULT_SENTINEL)?

`query`找到一個點的時區 .

GeoNames 總是返回時區:如果查詢的點沒有分配的olson時區ID,則 pytz.FixedOffset 時區用于生成 :類:`geopy.timezone.Timezone` .

參數
  • 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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, channel='')?

使用谷歌地圖v3 api的地理編碼。

文件地址:

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

定價詳情:

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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, 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) -- 要對其進行地理編碼的地址或查詢??蛇x,如果 components 設置參數::>g.Geocode(Components={“CITY”:“PARIS”,“COUNTRY”:“FR”})位置(法國,(46.227638,2.213749,0.0))

  • 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)] .

  • region (str) -- 區域代碼,指定為cctld(“頂級域”)的兩個字符值。

  • components (dict or list) -- 僅限于某個區域??梢允褂靡韵氯我饨M合: route , locality , administrative_area , postal_code , country . 如果要指定同一類型的多個組件,請傳遞元組列表,例如:>>> [('administrative_area', 'VA'), ('administrative_area', 'Arlington')]

  • place_id (str) -- 使用地點ID檢索位置。不能與一起使用 querybounds 參數。>>>g.geocode(place_id='ChIJOcfP0Iq2j4ARDrXUa7ZWs34')

  • language (str) -- 返回結果的語言。

  • sensor (bool) -- 地理編碼請求是否來自帶有位置傳感器的設備。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, 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) -- 如果可用,返回一個結果或結果列表。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • language (str) -- 返回結果的語言。

  • sensor (bool) -- 地理編碼請求是否來自帶有位置傳感器的設備。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

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

query 中找到指定的 `at_time`時區.

None 對于沒有指定奧爾森時區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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

Nonegeopy.timezone.Timezone 。

HERE?

class geopy.geocoders.Here(*, app_id=None, app_code=None, apikey=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

Geocoder使用HERE Geocoder API。

文件地址:

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

注意

該類使用處于維護模式的V6API??紤]使用較新的 HereV7 班級。

__init__(*, app_id=None, app_code=None, apikey=None, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
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 or dict) -- 要對其進行地理編碼的地址或查詢。對于結構化查詢,提供其鍵為以下之一的字典: 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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

HEREv7?

class geopy.geocoders.HereV7(apikey, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用此處地理編碼和搜索v7 API的地理編碼器。

文件地址:

https://developer.here.com/documentation/geocoding-search-api/

服務條款:

https://legal.here.com/en-gb/terms

在 2.2 版本加入.

__init__(apikey, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query=None, *, components=None, at=None, countries=None, language=None, limit=None, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢??蛇x,如果 components 參數已設置。

  • components (dict) -- 結構化查詢??梢耘c自由文本一起使用 query 。應該是關鍵字為以下之一的字典: country , state , county , city , district , street , houseNumber , postalCode 。

  • at (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 搜索上下文的中心。

  • countries (list) -- 中指定的國家/地區代碼列表 ISO 3166-1 alpha-3 格式,例如 ['USA', 'CAN'] 。這是硬過濾。

  • language (str) -- 影響響應的語言,必須是符合BCP 47的語言代碼,例如 en-US 。

  • limit (int) -- 定義響應結構中的最大項目數。如果沒有提供并且有多個結果,則HERE API將默認返回20個結果。如果滿足以下條件,則該值將重置為1 exactly_one 是真的。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

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

按地點返回地址。

參數
  • query (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 您希望獲得最接近人類可讀地址的坐標。

  • language (str) -- 影響響應的語言,必須是符合BCP 47的語言代碼,例如 en-US 。

  • limit (int) -- 要返回的最大結果數。如果滿足以下條件,則該值將重置為1 exactly_one 是真的。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, reverse_geocode_preference=('StreetAddress',), maximum_responses=25, filtering='', exactly_one=True, 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) -- 如果可用,返回一個結果或結果列表。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

MapBox?

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

使用mapbox api的地理編碼。

文件地址:

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

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, domain='api.mapbox.com')?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, proximity=None, country=None, bbox=None)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • 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列表。

  • 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)] .

返回類型

None , geopy.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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

MapQuest?

class geopy.geocoders.MapQuest(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, domain='www.mapquestapi.com')?

Geocoder使用基于許可數據的MapQuest API。

文件地址:

https://developer.mapquest.com/documentation/geocoding-api/

MapQuest提供了兩個地理編碼API:

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, domain='www.mapquestapi.com')?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, bounds=None)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • limit (int) -- 限制響應中的最大項數。如果出現以下情況,將重置為1 exactly_one 是True。

  • 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)] .

返回類型

None , geopy.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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

MapTiler?

class geopy.geocoders.MapTiler(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, domain='api.maptiler.com')?

使用MapTiler API的Geocoder。

文件地址:

https://cloud.maptiler.com/geocoding/ (requires sign-up)

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, domain='api.maptiler.com')?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, proximity=None, language=None, bbox=None)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

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

  • language (str or list) -- 更喜歡特定語言的結果。接受單個字符串,例如 "en" 或者是一份清單 ["de", "en"] .

  • 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)] .

返回類型

None , geopy.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 or list) -- 更喜歡特定語言的結果。接受單個字符串,例如 "en" 或者是一份清單 ["de", "en"] .

返回類型

None , geopy.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, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用OpenCageData API的地理編碼。

文件地址:

https://opencagedata.com/api

在 2.2 版本發生變更: 通過使用默認錯誤映射改進了錯誤處理(例如引發 exc.GeocoderQuotaExceeded 而不是 exc.GeocoderQueryError 對于HTTP 402錯誤)

__init__(api_key, *, domain='api.opencagedata.com', scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, bounds=None, country=None, language=None, annotations=True, exactly_one=True, timeout=DEFAULT_SENTINEL)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

  • 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)] .

  • country (str or list) -- 將結果限制在指定的一個或多個國家。國家代碼是由ISO 3166-1α2標準(例如 fr )可能是字符串的python列表。

  • language (str) -- iETF格式語言代碼(例如 es 西班牙語或巴西葡萄牙語的pt-br);如果省略了 en (英語)將由遠程服務承擔。

  • annotations (bool) -- 啟用 annotations 數據,可通過以下方式訪問 Location.raw 。如果您不需要它來獲得一點性能優勢,則設置為false。。。添加的版本::2.2

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, language=None, exactly_one=True, 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) -- 如果可用,返回一個結果或結果列表。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

OpenMapQuest?

class geopy.geocoders.OpenMapQuest(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='open.mapquestapi.com', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

基類:Nominatim

使用MapQuest開放平臺Web服務的地理編碼。

文件地址:

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

MapQuest提供了兩個地理編碼API:

__init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='open.mapquestapi.com', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, addressdetails=False, language=False, geometry=None, extratags=False, country_codes=None, viewbox=None, bounded=False, featuretype=None, namedetails=False)?

按地址返回位置點。

參數
  • query (dict or str) -- 您希望地理編碼的地址、查詢或結構化查詢。其中一個鍵是結構化的字典,它提供以下一個查詢: street , city , county , state , countrypostalcode . 有關更多信息,請參閱Nomingim的文檔 structured requests : https://nomintim.org/release-docs/develop/api/Search

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • limit (int) -- 從Nominatim返回的最大結果量。非 exact_one設置為 假,否則限制將始終為1。

  • addressdetails (bool) -- 如果你想加入的話 Location.raw 要包括地址詳細信息,如HOUSE_NUMBER、CITY_SEARD、郵政編碼等(以結構化形式),請將其設置為True

  • language (str) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

  • geometry (str) -- 如果存在,指定地理編碼服務是否應在 wkt, svg, kml, 或 geojson 格式。這是通過 raw 返回的屬性 geopy.location.Location 對象獲得。

  • extratags (bool) -- 如果可用,在結果中包括其他信息,例如維基百科鏈接、開放時間。

  • country_codes (str or list) -- 將搜索結果限制到特定國家(或國家列表)。國家/地區代碼應為ISO 3166-1alpha2代碼,例如 gb 對于聯合王國, de 對于德國等

  • viewbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 我更喜歡這個區域來查找搜索結果。默認情況下,這被視為提示,如果要將結果限制在此區域,請指定 bounded=True 也是。示例: [Point(22, 180), Point(-22, -180)] 。

  • bounded (bool) -- 將結果限制為僅包含在邊界內的項目 viewbox 。

  • featuretype (str) -- 如果存在,請將結果限制為特定類型的特征。允許值: country , state , city , settlement .

  • namedetails (bool) -- 如果你想要 Location.raw 若要包含namedetails,請將其設置為True。這將是一個備選名稱的列表,包括語言變體等。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, addressdetails=True, zoom=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) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

  • addressdetails (bool) -- 是否在* Location.raw 中包含地址詳細信息,例如城市,縣,州等

  • zoom (int) -- 地址所需的詳細程度,整數范圍為0(國家/地區級別)到18(建筑級別),默認值為18。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

Nominatim?

class geopy.geocoders.Nominatim(*, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='nominatim.openstreetmap.org', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

為openstreetmap數據指定地理編碼。

文件地址:

https://nominatim.org/release-docs/develop/api/Overview/

注意

在默認情況下使用提名 user_agent 強烈建議不要這樣做,因為它違反了nomingim的使用策略http s://operations.osmfoundation.org/policies/nomingim/,可能導致403和429 HTTP錯誤。請確保指定自定義 user_agent 具有 Nominatim(user_agent="my-application") 或者通過覆蓋默認值 user_agentgeopy.geocoders.options.default_user_agent = "my-application" . 如果自定義 user_agent 未指定。

__init__(*, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='nominatim.openstreetmap.org', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, addressdetails=False, language=False, geometry=None, extratags=False, country_codes=None, viewbox=None, bounded=False, featuretype=None, namedetails=False)?

按地址返回位置點。

參數
  • query (dict or str) -- 您希望地理編碼的地址、查詢或結構化查詢。其中一個鍵是結構化的字典,它提供以下一個查詢: street , city , county , state , countrypostalcode . 有關更多信息,請參閱Nomingim的文檔 structured requests : https://nomintim.org/release-docs/develop/api/Search

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • limit (int) -- 從Nominatim返回的最大結果量。非 exact_one設置為 假,否則限制將始終為1。

  • addressdetails (bool) -- 如果你想加入的話 Location.raw 要包括地址詳細信息,如HOUSE_NUMBER、CITY_SEARD、郵政編碼等(以結構化形式),請將其設置為True

  • language (str) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

  • geometry (str) -- 如果存在,指定地理編碼服務是否應在 wkt, svg, kml, 或 geojson 格式。這是通過 raw 返回的屬性 geopy.location.Location 對象獲得。

  • extratags (bool) -- 如果可用,在結果中包括其他信息,例如維基百科鏈接、開放時間。

  • country_codes (str or list) -- 將搜索結果限制到特定國家(或國家列表)。國家/地區代碼應為ISO 3166-1alpha2代碼,例如 gb 對于聯合王國, de 對于德國等

  • viewbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 我更喜歡這個區域來查找搜索結果。默認情況下,這被視為提示,如果要將結果限制在此區域,請指定 bounded=True 也是。示例: [Point(22, 180), Point(-22, -180)] 。

  • bounded (bool) -- 將結果限制為僅包含在邊界內的項目 viewbox 。

  • featuretype (str) -- 如果存在,請將結果限制為特定類型的特征。允許值: country , state , city , settlement .

  • namedetails (bool) -- 如果你想要 Location.raw 若要包含namedetails,請將其設置為True。這將是一個備選名稱的列表,包括語言變體等。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, addressdetails=True, zoom=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) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

  • addressdetails (bool) -- 是否在* Location.raw 中包含地址詳細信息,例如城市,縣,州等

  • zoom (int) -- 地址所需的詳細程度,整數范圍為0(國家/地區級別)到18(建筑級別),默認值為18。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

Pelias?

class geopy.geocoders.Pelias(domain, api_key=None, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

Pelias 地理編碼器.

文件地址:

https://github.com/pelias/documentation

另見 geopy.geocoders.GeocodeEarth 這是一個基于Pelias的服務,由Pelias本身的開發人員提供。

__init__(domain, api_key=None, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, boundary_rect=None, country_bias=None, language=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)] .

  • country_bias (str) -- 對這個國家的偏見結果(iso alpha-3)。

  • language (str) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

返回類型

None , geopy.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) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

Photon?

class geopy.geocoders.Photon(*, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='photon.komoot.io', user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用光子地理編碼服務的地理編碼器(基于開放式StreetMap的數據和由https://photon.komoot.io).上的komoot提供的服務

文件地址:

https://github.com/komoot/photon

Photon / Komoot地理編碼器旨在讓您在使用OpenStreetMap進行搜索時進行搜索。 此平臺不需要API密鑰。

在 2.2 版本發生變更: 將默認域從 photon.komoot.dephoton.komoot.io 。

__init__(*, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='photon.komoot.io', user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, location_bias=None, language=False, limit=None, osm_tag=None, bbox=None)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • location_bias (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 用作位置偏移的坐標。

  • language (str) -- 返回結果的首選語言。

  • limit (int) -- 限制返回結果的數量,默認為無限制。

  • osm_tag (str or list or set) -- 按鍵和/或值篩選(包括/排除)的表達式,str為 'key:value' 如果需要多個過濾器,則列出/設置str ['key:!val', '!key', ':!value'] .

  • 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)] 。。。添加的版本::2.2

返回類型

None , geopy.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) -- 限制返回結果的數量,默認為無限制。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

PickPoint?

class geopy.geocoders.PickPoint(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='api.pickpoint.io', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

基類:Nominatim

Pickpoint geocoder是商業版的nominim。

文件地址:

https://pickpoint.io/api-reference

__init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, domain='api.pickpoint.io', scheme=None, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, limit=None, addressdetails=False, language=False, geometry=None, extratags=False, country_codes=None, viewbox=None, bounded=False, featuretype=None, namedetails=False)?

按地址返回位置點。

參數
  • query (dict or str) -- 您希望地理編碼的地址、查詢或結構化查詢。其中一個鍵是結構化的字典,它提供以下一個查詢: street , city , county , state , countrypostalcode . 有關更多信息,請參閱Nomingim的文檔 structured requests : https://nomintim.org/release-docs/develop/api/Search

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • limit (int) -- 從Nominatim返回的最大結果量。非 exact_one設置為 假,否則限制將始終為1。

  • addressdetails (bool) -- 如果你想加入的話 Location.raw 要包括地址詳細信息,如HOUSE_NUMBER、CITY_SEARD、郵政編碼等(以結構化形式),請將其設置為True

  • language (str) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

  • geometry (str) -- 如果存在,指定地理編碼服務是否應在 wkt, svg, kml, 或 geojson 格式。這是通過 raw 返回的屬性 geopy.location.Location 對象獲得。

  • extratags (bool) -- 如果可用,在結果中包括其他信息,例如維基百科鏈接、開放時間。

  • country_codes (str or list) -- 將搜索結果限制到特定國家(或國家列表)。國家/地區代碼應為ISO 3166-1alpha2代碼,例如 gb 對于聯合王國, de 對于德國等

  • viewbox (list or tuple of 2 items of geopy.point.Point or (latitude, longitude) or "%(latitude)s, %(longitude)s".) -- 我更喜歡這個區域來查找搜索結果。默認情況下,這被視為提示,如果要將結果限制在此區域,請指定 bounded=True 也是。示例: [Point(22, 180), Point(-22, -180)] 。

  • bounded (bool) -- 將結果限制為僅包含在邊界內的項目 viewbox 。

  • featuretype (str) -- 如果存在,請將結果限制為特定類型的特征。允許值: country , state , city , settlement .

  • namedetails (bool) -- 如果你想要 Location.raw 若要包含namedetails,請將其設置為True。這將是一個備選名稱的列表,包括語言變體等。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, language=False, addressdetails=True, zoom=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) -- 返回結果的首選語言。兩者都使用標準 RFC2616 接受語言字符串或簡單的以逗號分隔的語言代碼列表。

  • addressdetails (bool) -- 是否在* Location.raw 中包含地址詳細信息,例如城市,縣,州等

  • zoom (int) -- 地址所需的詳細程度,整數范圍為0(國家/地區級別)到18(建筑級別),默認值為18。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

LiveAddress?

class geopy.geocoders.LiveAddress(auth_id, auth_token, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

使用SmartSystems提供的LiveAddress API進行地理編碼。

文件地址:

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

__init__(auth_id, auth_token, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, candidates=1)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • candidates (int) -- 一個介于1和10之間的整數,表示如果找到有效地址,將返回的候選地址的最大數目。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

TomTom?

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

TomTom地理編碼。

文件地址:

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

__init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, 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

返回類型

None , geopy.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

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

What3Words?

class geopy.geocoders.What3Words(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

What3word使用遺留的V2API的地理編碼器。

文件地址:

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

注意

考慮使用 What3WordsV3 取而代之的是。

__init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, lang='en', exactly_one=True, timeout=DEFAULT_SENTINEL)?

返回 3 words 查詢。如果 3 words 地址不存在,a geopy.exc.GeocoderQueryError 將引發異常。

參數
  • query (str) -- 您希望地理編碼的3字地址。

  • lang (str) -- 接口支持的雙字符語言代碼(https://docs.what3words.com/api/v2/#lang).

  • exactly_one (bool) -- 如果可用,返回一個結果或結果列表。由于地址方案的原因,每個結果始終只有一個 3 words 地址,所以這個參數對于這個地理編碼程序是相當無用的。

  • 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) -- 接口支持的雙字符語言代碼(https://docs.what3words.com/api/v2/#lang).

  • exactly_one (bool) -- 如果可用,返回一個結果或結果列表。由于地址方案的原因,每個結果始終只有一個 3 words 地址,所以這個參數對于這個地理編碼程序是相當無用的。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

如果 exactly_one=False geopy.location.Location 或者他們的清單 .

What 3WordsV3?

class geopy.geocoders.What3WordsV3(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

What3word使用V3API的地理編碼器。

文件地址:

https://developer.what3words.com/public-api/docs

在 2.2 版本加入.

__init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL)?

返回 3 words 查詢。如果 3 words 地址不存在,a geopy.exc.GeocoderQueryError 將引發異常。

參數
  • query (str) -- 您希望地理編碼的3字地址。

  • exactly_one (bool) -- 如果可用,返回一個結果或結果列表。由于地址方案的原因,每個結果始終只有一個 3 words 地址,所以這個參數對于這個地理編碼程序是相當無用的。

  • 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) -- (https://developer.what3words.com/public-api/docs#available-languages).接口支持的雙字符語言代碼

  • exactly_one (bool) -- 如果可用,返回一個結果或結果列表。由于地址方案的原因,每個結果始終只有一個 3 words 地址,所以這個參數對于這個地理編碼程序是相當無用的。

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

返回類型

如果 exactly_one=False geopy.location.Location 或者他們的清單 .

Yandex?

class geopy.geocoders.Yandex(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?

Yandex地理編碼。

文件地址:

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

__init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
參數
geocode(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, lang=None)?

按地址返回位置點。

參數
  • query (str) -- 要對其進行地理編碼的地址或查詢。

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

  • timeout (int) -- 等待地理編碼服務響應的時間(秒),然后引發 geopy.exc.GeocoderTimedOut 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • lang (str) -- 響應的語言和地圖的區域設置。支持值列表:- tr_TR --土耳其語(僅適用于土耳其地圖)- en_RU --英語、俄語地圖特點- en_US --英語、美式地圖特點- ru_RU --俄語(默認)- uk_UA --烏克蘭語- be_BY --白俄羅斯人。

返回類型

None , geopy.location.Location 或者他們的列表,如果 exactly_one=False .

reverse(query, *, exactly_one=True, timeout=DEFAULT_SENTINEL, kind=None, lang=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 例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。

  • kind (str) -- 地名類型。允許值: house, street, metro, district, locality.

  • lang (str) -- 響應的語言和地圖的區域設置。支持值列表:- tr_TR --土耳其語(僅適用于土耳其地圖)- en_RU --英語、俄語地圖特點- en_US --英語、美式地圖特點- ru_RU --俄語(默認)- uk_UA --烏克蘭語- be_BY --白俄羅斯人。

返回類型

None , geopy.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 ,因此可以對其進行自定義(但是,它應該始終以公里為單位)。

The geodesic distance is the shortest distance on the surface of an ellipsoidal model of the earth. The default algorithm uses the method is given by Karney (2013) (geodesic); this is accurate to round-off and always converges.

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 用法,取對 (lat, lon) 元組::

>>> 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

使用 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

目前所有的算法都假設點的高度要么為零(如上面的例子中所示)要么相等,并且相對較小。因此,海拔高度不會影響結果距離:

>>> from geopy import distance
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(distance.distance(newport_ri, cleveland_oh).km)
866.4554329098687
>>> newport_ri = (41.49008, -71.312796, 100)
>>> cleveland_oh = (41.499498, -81.695391, 100)
>>> print(distance.distance(newport_ri, cleveland_oh).km)
866.4554329098687

如果需要使用高程計算距離,則對于短距離 Euclidean distance 公式可以給出一個合適的近似值:

>>> import math
>>> from geopy import distance
>>> p1 = (43.668613, 40.258916, 0.976)
>>> p2 = (43.658852, 40.250839, 1.475)
>>> flat_distance = distance.distance(p1[:2], p2[:2]).km
>>> print(flat_distance)
1.265133525952866
>>> euclidian_distance = math.sqrt(flat_distance**2 + (p2[2] - p1[2])**2)
>>> print(euclidian_distance)
1.359986705262199

嘗試計算具有不同高度的點之間的距離將導致 ValueError 例外情況。

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.Distance(*args, **kwargs)?

其他距離算法的基類。表示距離。

可用于單位轉換::

>>> from geopy.distance import Distance
>>> Distance(miles=10).km
16.09344

距離實例具有全部 距離 來自以下位置的特性 geopy.units ,例如: km , m , meters , miles 諸若此類。

距離實例是不可變的。

它們支持比較:

>>> from geopy.distance import Distance
>>> Distance(kilometers=2) == Distance(meters=2000)
True
>>> Distance(kilometers=2) > Distance(miles=1)
True

字符串表示形式::

>>> from geopy.distance import Distance
>>> repr(Distance(kilometers=2))
'Distance(2.0)'
>>> str(Distance(kilometers=2))
'2.0 km'
>>> repr(Distance(miles=2))
'Distance(3.218688)'
>>> str(Distance(miles=2))
'3.218688 km'

算術::

>>> from geopy.distance import Distance
>>> -Distance(miles=2)
Distance(-3.218688)
>>> Distance(miles=2) + Distance(kilometers=1)
Distance(4.218688)
>>> Distance(miles=2) - Distance(kilometers=1)
Distance(2.218688)
>>> Distance(kilometers=6) * 5
Distance(30.0)
>>> Distance(kilometers=6) / 5
Distance(1.2)
__init__(*args, **kwargs)?

有3種方法可以創建距離:

  • 出發地公里::

    >>> from geopy.distance import Distance
    >>> Distance(1.42)
    Distance(1.42)
    
  • 自單位:

    >>> from geopy.distance import Distance
    >>> Distance(kilometers=1.42)
    Distance(1.42)
    >>> Distance(miles=1)
    Distance(1.609344)
    
  • 起點(僅適用于非抽象距離),計算為所有點之間的距離之和:

    >>> from geopy.distance import geodesic
    >>> geodesic((40, 160), (40.1, 160.1))
    Distance(14.003702498106215)
    >>> geodesic((40, 160), (40.1, 160.1), (40.2, 160.2))
    Distance(27.999954644813478)
    
destination(point, bearing, distance=None)?

使用起點、方向角和距離計算目標點。此方法僅適用于非抽象距離。

例子:以東10英里處的一個點 (34, 148) ::

>>> import geopy.distance
>>> geopy.distance.distance(miles=10).destination((34, 148), bearing=90)
Point(33.99987666492774, 148.17419994321995, 0.0)
參數
  • point (geopy.point.Point, list or tuple of (latitude, longitude), or string as "%(latitude)s, %(longitude)s".) -- 起點。

  • bearing (float) -- 方位角(度):0--北,90--東,180--南,270或-90--西。

  • distance (Distance) -- 距離,可用于覆蓋此實例::>距地理副本。距離導入距離,距離>距離(英里=10)。目的地((34,149.08238904409637),方位角=90,距離=距離(33.995238229104764))

返回類型

geopy.point.Point

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

基類:Distance

計算點之間的測地線距離。

通過指定 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
class geopy.distance.great_circle(*args, **kwargs)?

基類:Distance

使用球面幾何圖形計算點之間的曲面距離。

通過指定 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

數據?

class geopy.location.Location(address, point, raw)?

包含已分析的地理編碼程序響應??梢缘鸀?(location<String>, (latitude<float>, longitude<Float)) . 或者可以訪問屬性 address , latitude , longituderaw . 最后是一個關于該項目的地理編碼響應的字典。

property address?

地理編碼程序返回的格式化字符串或由Geopy構造的位置,具體取決于服務。

返回類型

str

property altitude?

位置的高度。

備注

地理編碼服務通常在請求和響應中都不考慮海拔高度,所以這個屬性的值幾乎總是為零。

返回類型

float

property latitude?

位置的緯度。

返回類型

float

property longitude?

位置的經度。

返回類型

float

property point?

geopy.point.Point 表示位置的緯度、經度和高度的實例。

返回類型

geopy.point.Point

property raw?

位置的原始、未分析的地理編碼響應。有關詳細信息,請參閱服務的文檔。

返回類型

dict

class geopy.point.Point(latitude=None, longitude=None, altitude=None)?

具有緯度、經度和高度的大地測量點。

緯度和經度是以度為單位的浮點值。高度是以公里為單位的浮點值。參考水平從未被考慮過,因此依賴于應用程序,所以要一致!所有值的默認值為0。

可以通過多種方式創建點…

緯度、經度和高度:

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

以2到3個值(緯度、經度、海拔)為順序:

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

復制另一個`Point`實例:

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

給出至少包含緯度和經度的字符串:

>>> p = Point('41.5,-81.0')
>>> p = Point('+41.5 -81.0')
>>> p = Point('41.5 N -81.0 W')
>>> p = Point('-41.5 S, 81.0 E, 2.5km')
>>> p = Point('23 26m 22s N 23 27m 30s E 21.0mi')
>>> p = 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

文本表示:

>>> p = Point(41.5, -81.0, 12.3)
>>> str(p)  # same as `p.format()`
'41 30m 0s N, 81 0m 0s W, 12.3km'
>>> p.format_unicode()
'41° 30′ 0″ N, 81° 0′ 0″ W, 12.3km'
>>> repr(p)
'Point(41.5, -81.0, 12.3)'
>>> repr(tuple(p))
'(41.5, -81.0, 12.3)'
static __new__(cls, latitude=None, longitude=None, altitude=None)?
參數
  • latitude (float) -- 點的緯度。

  • longitude (float) -- 點的經度。

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

format(altitude=None, deg_char='', min_char='m', sec_char='s')?

將十進制度數(DD)格式設置為度分秒(DMS)::

>>> p = Point(41.5, -81.0, 12.3)
>>> p.format()
'41 30m 0s N, 81 0m 0s W, 12.3km'
>>> p = Point(41.5, 0, 0)
>>> p.format()
'41 30m 0s N, 0 0m 0s E'

也見 format_unicode() .

參數

altitude (bool) -- 是否包括 altitude 價值觀。默認情況下,如果非零值,則自動包含該值。

format_altitude(unit='km')?

高度單位格式:

>>> p = Point(41.5, -81.0, 12.3)
>>> p.format_altitude()
'12.3km'
>>> p = Point(41.5, -81.0, 0)
>>> p.format_altitude()
'0.0km'
參數

unit (str) -- 生成的高度單位。支持的單位 from_string() 博士。

format_decimal(altitude=None)?

設置帶高度的十進制度數格式:

>>> p = Point(41.5, -81.0, 12.3)
>>> p.format_decimal()
'41.5, -81.0, 12.3km'
>>> p = Point(41.5, 0, 0)
>>> p.format_decimal()
'41.5, 0.0'
參數

altitude (bool) -- 是否包括 altitude 價值觀。默認情況下,如果非零值,則自動包含該值。

format_unicode(altitude=None)?

format() 用漂亮的unicode字符表示度、分和秒:

>>> p = Point(41.5, -81.0, 12.3)
>>> p.format_unicode()
'41° 30′ 0″ N, 81° 0′ 0″ W, 12.3km'
參數

altitude (bool) -- 是否包括 altitude 價值觀。默認情況下,如果非零值,則自動包含該值。

classmethod from_point(point)?

創建并返回新的 Point 從另一個實例 Point 實例。

classmethod from_sequence(seq)?

創建并返回新的 Point 從任何包含2到3個元素的iterable實例。元素(如果存在)必須分別是緯度、經度和海拔。

classmethod from_string(string)?

從包含緯度和經度以及可選高度的字符串中引用創建并返回 Point 。

緯度和經度必須以度為單位,可以是十進制形式,也可以表示弧分和弧秒(用Unicode Prime和Double Prime、ASCII Quote和Double Quote或'M'和'S'標記)。度數符號是可選的,可以在小數點后(以十進制形式)和arcminutes和arseconds之前包含。從南部和西部給出的坐標(用S和W后綴表示)將通過轉換其符號轉換為北和東。如果沒有給出(或部分)基本方向,則假定方向為北和東。緯度和經度必須至少用空格、逗號或分號分隔(每個空格周圍都有可選的空格)。

高度,如果提供,必須是帶給定單位的十進制數字。支持以下單元縮寫(不區分大小寫):

  • km (公里)

  • m (米)

  • mi (英里)

  • ft (腳)

  • nm , nmi (海里)

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

  • 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''

classmethod parse_altitude(distance, unit)?

解析高度管理單位轉換:

>>> Point.parse_altitude(712, 'm')
0.712
>>> Point.parse_altitude(712, 'km')
712.0
>>> Point.parse_altitude(712, 'mi')
1145.852928
參數
  • distance (float) -- 高度的數值。

  • unit (str) -- distance 單位。支持的單位 from_string() 博士。

classmethod parse_degrees(degrees, arcminutes, arcseconds, direction=None)?

將度、分、秒和方向(N、S、E、W)轉換為單個度數。

返回類型

float

class geopy.timezone.Timezone(pytz_timezone, raw)?

包含時區請求的解析響應,該響應在提供此類查找的少數地理代碼中實現。

property pytz_timezone?

pytz時區實例。

返回類型

pytz.tzinfo.BaseTzInfo

property raw?

時區的原始、未分析的地理編碼響應。有關詳細信息,請參閱服務的文檔。

返回類型

dict

單位換算?

geopy.units 模塊提供用于執行角度和距離單位轉換的實用功能。

為了方便起見,我們提供了一些簡短的別名(例如。 km() 是一個別名 kilometers()

geopy.units.arcmin(degrees=0, radians=0, arcseconds=0)?

將角度轉換為弧分。

geopy.units.arcminutes(degrees=0, radians=0, arcseconds=0)?

將角度轉換為弧分。

geopy.units.arcsec(degrees=0, radians=0, arcminutes=0)?

將角度轉換為弧秒。

geopy.units.arcseconds(degrees=0, radians=0, arcminutes=0)?

將角度轉換為弧秒。

geopy.units.degrees(radians=0, arcminutes=0, arcseconds=0)?

將角度轉換為度。

geopy.units.feet(kilometers=0, meters=0, miles=0, nautical=0)?

將距離轉換為英尺。

geopy.units.ft(kilometers=0, meters=0, miles=0, nautical=0)?

將距離轉換為英尺。

geopy.units.kilometers(meters=0, miles=0, feet=0, nautical=0)?

將距離轉換為公里。

geopy.units.km(meters=0, miles=0, feet=0, nautical=0)?

將距離轉換為公里。

geopy.units.m(kilometers=0, miles=0, feet=0, nautical=0)?

將距離轉換為米。

geopy.units.meters(kilometers=0, miles=0, feet=0, nautical=0)?

將距離轉換為米。

geopy.units.mi(kilometers=0, meters=0, feet=0, nautical=0)?

將距離轉換為英里。

geopy.units.miles(kilometers=0, meters=0, feet=0, nautical=0)?

將距離轉換為英里。

geopy.units.nautical(kilometers=0, meters=0, miles=0, feet=0)?

把距離換算成海里。

geopy.units.nm(kilometers=0, meters=0, miles=0, feet=0)?

把距離換算成海里。

geopy.units.rad(degrees=0, arcminutes=0, arcseconds=0)?

將角度轉換為弧度。

geopy.units.radians(degrees=0, arcminutes=0, arcseconds=0)?

將角度轉換為弧度。

例外情況?

class geopy.exc.GeopyError?

基類:Exception

特定于Geopy的異常都是從GeopyError繼承而來的。

class geopy.exc.ConfigurationError?

基類:GeopyError, ValueError

在實例化地理編碼程序時,給出的參數無效。請參閱每個地理編碼器的文檔 __init__ 了解更多詳細信息。

class geopy.exc.GeocoderServiceError?

基類:GeopyError

調用遠程地理編碼服務時發生異常,地理信息不能再引發更具體的異常。調用geocoder的 geocodereverse 方法時,這是可以引發的最通用的異常,任何非geopy異常都將被捕獲并轉換為該異常。異常的消息將是原始異常的消息。

class geopy.exc.GeocoderQueryError?

基類:GeocoderServiceError, ValueError

Geopy檢測到可能導致請求失敗的輸入,或者發出了請求,遠程地理編碼服務響應該請求是錯誤的。

class geopy.exc.GeocoderQuotaExceeded?

基類:GeocoderServiceError

遠程地理編碼服務拒絕完成請求,因為客戶端已使用其配額。

class geopy.exc.GeocoderRateLimited(message, *, retry_after=None)?

基類:GeocoderQuotaExceeded, OSError

遠程地理編碼服務對該請求進行了速率限制。稍后重試可能會有所幫助。

此類型的異常具有 retry_after 屬性,該屬性包含服務要求等待的時間量(以秒為單位)??赡苁?None 如果沒有這樣的數據作為回應。

在 2.2 版本加入.

class geopy.exc.GeocoderAuthenticationFailure?

基類:GeocoderServiceError

遠程地理編碼服務拒絕使用此地理編碼程序實例化的API密鑰或帳戶憑據。

class geopy.exc.GeocoderInsufficientPrivileges?

基類:GeocoderServiceError

遠程地理編碼服務拒絕使用給定的帳戶憑據完成請求。

class geopy.exc.GeocoderTimedOut?

基類:GeocoderServiceError, TimeoutError

對地理編碼服務的調用已中止,因為在 timeout geocoding類或方法調用(如果指定)的參數。有些服務的速度一直很慢,使用它們可能需要更高的超時。

class geopy.exc.GeocoderUnavailable?

基類:GeocoderServiceError, OSError

要么是無法建立到遠程地理編碼服務的連接,要么是服務響應了一個指示它不可用的代碼。

class geopy.exc.GeocoderParseError?

基類:GeocoderServiceError

Geopy無法分析服務的響應。這可能是由于地地形的一個錯誤造成的。

class geopy.exc.GeocoderNotFound?

基類:GeopyError, ValueError

調用者請求與字符串匹配的地理編碼程序,例如, "google" > GoogleV3 ,但找不到地理編碼。

適配器?

適配器是geocoders使用的HTTP客戶端實現。

一些適配器的持久性和響應可能會保持一致,所以會支持壓縮請求。

適配器應該被視為實現細節。大多數情況下,除非您想優化HTTP客戶端設置,否則您不需要知道它們的存在。

在 2.0 版本加入: 適配器當前提供在 provisional basis .

支持的適配器?

class geopy.adapters.RequestsAdapter(*, proxies, ssl_context, pool_connections=10, pool_maxsize=10, max_retries=2, pool_block=False)?

基類:BaseSyncAdapter

使用的適配器 requests 類庫。

requests 支持保持有效、重試、持久Cookies、允許響應壓縮和使用HTTP/1.1 [目前] .

requests 必須安裝包才能使用此適配器。

class geopy.adapters.URLLibAdapter(*, proxies, ssl_context)?

基類:BaseSyncAdapter

使用Python標準庫中的urllib的回退適配器,請參閱 urllib.request.urlopen() .

urllib不支持保持有效、請求重試、不持久化Cookies,并且僅支持HTTP/1.1。

urllib是geopy1.x中發出請求的唯一可用選項,因此這個適配器在HTTP請求方面的行為與geopy1.x相同。

class geopy.adapters.AioHTTPAdapter(*, proxies, ssl_context)?

基類:BaseAsyncAdapter

使用的適配器 aiohttp 類庫。

aiohttp 支持保持有效性、持久Cookies、允許響應壓縮和使用HTTP/1.1 [目前] .

aiohttp 必須安裝包才能使用此適配器。

基類?

class geopy.adapters.AdapterHTTPError(message, *, status_code, headers, text)?

基類:OSError

當接收到狀態代碼不成功的HTTP響應時,適配器必須引發的異常。

基Geocoder類將此異常轉換為 geopy.exc.GeocoderServiceError .

__init__(message, *, status_code, headers, text)?
參數
  • message (str) -- 標準異常消息。

  • status_code (int) -- HTTP狀態代碼。

  • headers (dict) -- HTTP響應讀取器。具有小寫或不區分大小寫的鍵的映射對象。。。添加的版本::2.2

  • text (str) -- HTTP正文文本。

class geopy.adapters.BaseAdapter(*, proxies, ssl_context)?

適配器的基類。

適配器有兩種類型:

具體的適配器實現必須擴展上面兩個基本適配器中的一個。

geopy.geocoders.options.default_adapter_factory 有關如何指定地理編碼器使用的適配器的詳細信息。

__init__(*, proxies, ssl_context)?

初始化適配器。

參數
abstract get_json(url, *, timeout, headers)?

等同于 get_text 但響應應該是有效的JSON。返回的值是解析后的JSON。

geopy.exc.GeocoderParseError 如果無法分析響應,則必須引發。

參數
abstract get_text(url, *, timeout, headers)?

發出GET請求并以字符串形式返回響應。

此方法不應引發除以下情況外的任何異常:

參數
class geopy.adapters.BaseSyncAdapter(*, proxies, ssl_context)?

基類:BaseAdapter

同步適配器的基類。

class geopy.adapters.BaseAsyncAdapter(*, proxies, ssl_context)?

基類:BaseAdapter

異步適配器的基類。

另請參閱: Async Mode 。

登錄?

geopy將使用記錄器名稱記錄geocoding url geopy 在水平 DEBUG, 對于某些地理編碼程序,這些URL將包含身份驗證信息。

帶有不成功狀態代碼的響應的HTTP主體記錄為 INFO 水平。

默認日志記錄級別為 NOTSET, 它將消息處理委托給根記錄器。查看文檔 logging.Logger.setLevel() 更多信息。

Semver?

geopy嘗試遵循語義版本控制,但是一些突破性的更改仍在小版本中進行,例如:

  • 未記錄API的向后不兼容更改。這不應該影響任何人,除非他們擴展了geocoder類或使用了未記錄的特性或monkey-patch任何東西。如果您認為geopy中缺少一些東西,請考慮打開一個問題或提供一個補丁/PR,而不是在geopy周圍進行黑客攻擊。

  • 地理編碼服務有時會引入新的API并貶低以前的API。我們試圖在不破壞地理編碼程序API接口的情況下進行升級,但是 geopy.location.Location.raw 值可能以向后不兼容的方式更改。

  • 無效輸入和特殊邊緣情況的行為可能會改變。例如, geopy.point.Point 實例以前確實進行了坐標值標準化,盡管沒有文檔記錄,而且它完全不適用于 [-90; 90] 射程。因此,不是為緯度使用不正確的規格化值,而是使用 ValueError 異?,F已引發 (#294 )。

被逐步淘汰的特性和用法被廢棄了 warnings 如果可能的話。確保使用 -Wd 切換以查看代碼是否發出警告。

為了減少升級的痛苦,請在升級之前閱讀變更日志。