歡迎使用Geopy文檔!?

- 文檔
- 源代碼
- 堆棧溢出
- 地理信息系統堆棧交換
- 討論
- 問題跟蹤器
- PyPI
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。
目錄
- 歡迎使用Geopy文檔!
- 安裝
- 地理編碼器
- 指定一次參數
- 地理游戲不是一種服務
- 異步模式
- 訪問地理編碼器
- 默認選項對象
- 與 Pandas 一起使用
- AlgoliaPlaces
- ArcGIS
- AzureMaps
- 百度
- 百渡v3
- BANFrance
- Bing
- 數據庫
- GeocodeEarth
- GeocodeFarm
- Geocodio
- Geolake
- GeoNames
- GoGuLv3
- HERE
- HEREv7
- IGNFrance
- MapBox
- MapQuest
- MapTiler
- OpenCage
- OpenMapQuest
- Nominatim
- Pelias
- Photon
- PickPoint
- LiveAddress
- TomTom
- What3Words
- What 3WordsV3
- Yandex
- 計算距離
- 數據
- 單位換算
- 例外情況
- 適配器
- 登錄
- Semver
- Changelog
- 索引和搜索
安裝?
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', ...}
定位器 geocode
和 reverse
方法需要參數 query
至少接受這個參數 exactly_one
,這就是 True
默認情況下。地理編碼可能具有其他屬性,例如,必應接受 user_location
,其作用是偏向該位置附近的結果。 geocode
和 reverse
方法可以返回三種類型的值:
當沒有找到結果時,返回
None
.當方法
exactly_one
參數是True
并且至少找到一個結果,返回geopy.location.Location
對象,可以迭代為:(address<String>, (latitude<Float>, longitude<Float>))
或者可以訪問為
location.address
,location.latitude
,location.longitude
,location.altitude
和location.raw
. 最后一個包含對這個結果的完整地理編碼響應。當
exactly_one
是False
,并且至少有一個結果,返回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只是一個在單個包中為許多不同服務提供這些實現的庫。
因此:
不同的服務有不同的使用條款、配額、定價、地理數據庫等等。例如,
Nominatim
是免費的,但提供低請求限制。如果您需要進行更多的查詢,可以考慮使用其他(可能是付費的)服務,例如OpenMapQuest
或PickPoint
(這兩個是提名的商業提供者,因此它們應該具有相同的數據和API)?;蛘?,如果你準備好等待,你可以嘗試geopy.extra.rate_limiter
.geopy不負責地理編碼服務的數據庫。如果您對服務無法完成的某些查詢有問題,應該將其定向到該服務的支持團隊。
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 對象包含地理編碼程序的默認配置值,例如 timeout 和 User-Agent. 您可以覆蓋此對象中的默認值,而不是單獨向每個地理編碼程序傳遞自定義值。
請注意,并不是所有的地理代碼都使用這個對象的所有屬性。例如,一些地理編碼器不遵守
default_scheme
屬性。請參閱特定地理編碼程序的初始值設定項文檔,以獲取地理編碼程序接受的參數列表。覆蓋默認值的示例
timeout
和user_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接受兩個關鍵字參數:
proxies
和ssl_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_PROXY 和 HTTPS_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)。
速率限制器?
RateLimiter
和 AsyncRateLimiter
允許執行批量操作,同時優雅地處理錯誤響應并在需要時添加延遲。
在下面的示例中,每對 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的地理編碼器。
- __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)?
- 參數
app_id (str) -- 唯一的應用程序標識符。它用于在使用Algolia的API時識別您的身份??吹搅藛醜ttps://www.algolia.com/dashboard。
api_key (str) -- Algolia的用戶API密鑰。
domain (str) -- 目前是
'places-dsn.algolia.net'
,可以為測試目的而更改。scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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的地理編碼。
- __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')?
- 參數
username (str) -- Arcgis用戶名。如果需要身份驗證模式,則需要。
password (str) -- Arcgis密碼。如果需要身份驗證模式,則需要。
referer (str) -- 如果需要身份驗證模式,則需要每個請求一起發送 Referer HTTP標頭,例如,
'http://www.example.com'
. 這與一個已頒發的令牌綁定,因此應通過擁有多個ArcGIS地理代碼實例來處理多個引用者的字段查詢。token_lifetime (int) -- Arcgis頒發的令牌的生命周期(分鐘)。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
. 如果正在使用身份驗證模式,則必須為'https'
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0auth_domain (str) -- 托管目標Arcgis身份驗證服務的域。僅在身份驗證模式下使用(即設置用戶名、密碼和引用)。
domain (str) -- 托管目標Arcgis服務的域。
- 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地理編碼器。
- __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')?
- 參數
subscription_key (str) -- Azure Maps 訂閱密鑰。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0domain (str) -- 托管目標Azure地圖服務的域。
- 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的地理編碼。
注意
新注冊的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)?
- 參數
api_key (str) -- 百度地圖執行地理編碼請求所需的API密鑰(AK)。 API密鑰通過百度API控制臺(http://lbsyun.baidu.com/apiconsole/key)進行管理。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0security_key (str) -- 如果驗證設置需要,則在安全密鑰(SK)中計算請求中的SN參數(http://lbsyun.baidu.com/index.php?title=lbscloud/api/appendix)。
- 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。
- __init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, security_key=None)?
- 參數
api_key (str) -- 百度地圖執行地理編碼請求所需的API密鑰(AK)。 API密鑰通過百度API控制臺(http://lbsyun.baidu.com/apiconsole/key)進行管理。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0security_key (str) -- 如果驗證設置需要,則在安全密鑰(SK)中計算請求中的SN參數(http://lbsyun.baidu.com/index.php?title=lbscloud/api/appendix)。
- 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。
- __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)?
- 參數
domain (str) -- 目前是
'api-adresse.data.gouv.fr'
,可以為測試目的而更改。scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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進行地理編碼。
- __init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
api_key (str) -- 應該是有效的Bing Maps API密鑰 (https://www.microsoft.com/en-us/maps/create-a-bing-maps-key).
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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的物理地址地理碼器的地理碼器。
- __init__(*, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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)?
- 參數
api_key (str) -- Geocode.earth API密鑰,必需。
domain (str) -- 為Pelias API指定自定義域。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.scheme (str) -- 見
geopy.geocoders.options.default_scheme
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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
.
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的地理編碼器。
在 2.2 版本加入.
- __init__(api_key, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
api_key (str) -- 有效的Geocod.io API密鑰。(https://dash.geocod.io/apikey/create))
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
.
- geocode(query, *, limit=None, exactly_one=True, timeout=DEFAULT_SENTINEL)?
按地址返回位置點。
- 參數
query (dict or str) -- 要對其進行地理編碼的地址、查詢或結構化查詢。對于結構化查詢,請提供其關鍵字為以下各項之一的字典: street , city , state , postal_code 或 country 。
limit (int) -- 要返回的最大匹配數。如果滿足以下條件,則該值將重置為1
exactly_one
是True
。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_one
是True
。
- 返回類型
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的地理編碼。
- __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)?
- 參數
api_key (str) -- Geolake執行地理編碼請求所需的API密鑰。 您可以在此處獲取密鑰:https://geolake.com/
domain (str) -- 目前是
'api.geolake.com'
,可以為測試目的而更改。scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- geocode(query, *, country_codes=None, exactly_one=True, timeout=DEFAULT_SENTINEL)?
按地址返回位置點。
- 參數
query (str or dict) -- 要對其進行地理編碼的地址或查詢。對于結構化查詢,提供其鍵為以下之一的字典: country , state , city , zipcode , street , address , houseNumber 或 subNumber .
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 地理編碼器。
- __init__(username, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None, scheme='http')?
- 參數
username (str) -- 需要GeoNames用戶名。 在這里注冊:http://www.geonames.org/login
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0scheme (str) -- 見
geopy.geocoders.options.default_scheme
. 請注意,在編寫 GeoNames時不支持 https, 所以默認方案是 http. 值geopy.geocoders.options.default_scheme
不受尊重。此參數用于在 GeoNames 添加支持后切換到“https”。
- 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
例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。
- 返回類型
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的地理編碼。
- __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='')?
- 參數
api_key (str) -- Google執行地理編碼請求所需的API密鑰,必填(除非使用PRIMILER,否則兩者均為
client_id
和secret_key
必須改為指定)。API密鑰通過Google API控制臺(https://code.google.com/apis/console).)進行管理一定要兩者兼備。Geocoding API
和Time Zone API
為此API密鑰啟用的服務。。。VersionChanged::2.1以前在以下情況下都會發出警告api_key
也沒有具體說明總理?,F在是一個geopy.exc.ConfigurationError
都被養大了。domain (str) -- 應該是要連接的本地化谷歌地圖域。默認值是“maps.googleapis.com”,但如果您在英國(例如)對地址進行地理編碼,則可能需要將其設置為“maps.google.co.uk”,以便正確地對結果進行偏移。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.client_id (str) -- 如果使用Premier,則為帳戶客戶端ID。
secret_key (str) -- 如果使用Premier,則為帳戶密鑰。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0channel (str) -- 如果使用premier,則為通道標識符。
- 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檢索位置。不能與一起使用
query
或bounds
參數。>>>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
例外。僅當您希望在這個調用上覆蓋在地理編碼程序初始化期間設置的值時,才設置這個值。
- 返回類型
None
或geopy.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。
注意
該類使用處于維護模式的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)?
- 參數
app_id (str) -- 應該是有效的HERE Maps APP ID。最終將被APIKEY替換??吹搅藛醜ttps://developer.here.com/authenticationpage。.. 在這里被App::2.App ID和App ID替換??紤]
apikey
而不是使用app_id
和app_code
.app_code (str) -- 應該是一個有效的地圖應用程序代碼。最終將被APIKEY替換??吹搅藛醜ttps://developer.here.com/authenticationpage。.. 在這里被App::2.App ID和App ID替換??紤]
apikey
而不是使用app_id
和app_code
.apikey (str) -- 應該是有效的HERE Maps APIKEY。這些密鑰于2019年12月推出,最終將取代舊的應用程序代碼/應用程序ID對,這些代碼/應用程序ID對已不再適用于新帳戶(但仍適用于舊帳戶)。更多身份驗證詳細信息,請訪問https://developer.here.com/blog/announcing-two-new-authentication-types??吹搅藛醜ttps://developer.here.com/authenticationpage。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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的地理編碼器。
在 2.2 版本加入.
- __init__(apikey, *, scheme=None, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
apikey (str) -- 應為有效的HERE地圖apiKey??梢栽趆ttps://developer.here.com/projects.上創建項目
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
.
- 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。
- __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)?
- 參數
api_key (str) -- IGN France API執行地理編碼請求所需的API密鑰。 您可以在此處獲取密鑰:https://geoservices.ign.fr/documentation/services-acces.html。強制性。 對于使用referer和用戶名/密碼進行身份驗證,api密鑰始終不同。
username (str) -- 呼叫時需要HTTP簡單身份驗證用戶名。如果沒有引用集,則必須提供
password (str) -- 呼叫時需要HTTP簡單身份驗證密碼。如果沒有引用集,則必須提供
referer (str) -- 打電話時需要HTTP引用。如果沒有密碼和用戶名,則必須輸入
domain (str) -- 目前是
'wxs.ign.fr'
,可以更改以用于測試開發人員API測試目的,例如'gpp3-wxs.ign.fr'
。scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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, StreetAddress 或 CadastralParcel. 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) -- 啟用以設置預期的結果類型。它可以 StreetAddress 或 PositionOfInterest. 默認設置為 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的地理編碼。
- __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')?
- 參數
api_key (str) -- Mapbox執行地理編碼請求所需的API密鑰。 API密鑰通過Mapox的帳戶頁面(https://www.mapbox.com/account/access-tokens)進行管理。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0domain (str) -- mapBox的基本API域
- 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。
MapQuest提供了兩個地理編碼API:
geopy.geocoders.OpenMapQuest
基于OpenStreetMap的開放數據的類似提名API。geopy.geocoders.MapQuest
(此類)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')?
- 參數
api_key (str) -- Mapquest執行地理編碼請求所需的API密鑰。API密鑰通過MapQuest的“管理密鑰”頁面進行管理(https://developer.mapquest.com/user/me/apps).
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0domain (str) -- mapquest的基本api域
- 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')?
- 參數
api_key (str) -- Maptiler執行地理編碼請求所需的API密鑰。API密鑰通過Maptiler的帳戶頁進行管理(https://cloud.maptiler.com/account/keys).
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0domain (str) -- 映射器的基本api域
- 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的地理編碼。
在 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)?
- 參數
api_key (str) -- OpenCageData執行地理編碼請求所需的API密鑰。 您可以在此處獲取密鑰:https://opencagedata.com/
domain (str) -- 目前是
'api.opencagedata.com'
,可以為測試目的而更改。scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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.2exactly_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服務的地理編碼。
MapQuest提供了兩個地理編碼API:
geopy.geocoders.OpenMapQuest
(此類)基于OpenStreetMap的開放數據的類似命名的API。geopy.geocoders.MapQuest
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)?
- 參數
api_key (str) -- MapQuest提供的API密鑰是必需的。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.domain (str) -- 托管目標提名服務的域。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.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=False, featuretype=None, namedetails=False)?
按地址返回位置點。
- 參數
query (dict or str) -- 您希望地理編碼的地址、查詢或結構化查詢。其中一個鍵是結構化的字典,它提供以下一個查詢: street , city , county , state , country 或 postalcode . 有關更多信息,請參閱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數據指定地理編碼。
注意
在默認情況下使用提名 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"
. 如果自定義 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)?
- 參數
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.domain (str) -- 托管目標提名服務的域。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.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=False, featuretype=None, namedetails=False)?
按地址返回位置點。
- 參數
query (dict or str) -- 您希望地理編碼的地址、查詢或結構化查詢。其中一個鍵是結構化的字典,它提供以下一個查詢: street , city , county , state , country 或 postalcode . 有關更多信息,請參閱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 地理編碼器.
另見
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)?
- 參數
domain (str) -- 為Pelias API指定域。
api_key (str) -- Pelias API密鑰,可選。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.scheme (str) -- 見
geopy.geocoders.options.default_scheme
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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提供的服務
Photon / Komoot地理編碼器旨在讓您在使用OpenStreetMap進行搜索時進行搜索。 此平臺不需要API密鑰。
在 2.2 版本發生變更: 將默認域從
photon.komoot.de
至photon.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)?
- 參數
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.domain (str) -- 應該是要連接到的本地化光子域。默認值為
'photon.komoot.io'
,但您可以將其更改為您自己的域。user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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。
- __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)?
- 參數
api_key (str) -- 在https://pickpoint.io上獲取的PickPoint API密鑰。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.domain (str) -- 托管目標提名服務的域。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.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=False, featuretype=None, namedetails=False)?
按地址返回位置點。
- 參數
query (dict or str) -- 您希望地理編碼的地址、查詢或結構化查詢。其中一個鍵是結構化的字典,它提供以下一個查詢: street , city , county , state , country 或 postalcode . 有關更多信息,請參閱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進行地理編碼。
- __init__(auth_id, auth_token, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
auth_id (str) -- 有效的 Auth ID 來自SmartSystems。
auth_token (str) -- 有效的 Auth Token 來自SmartSystems。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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地理編碼。
- __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')?
- 參數
api_key (str) -- ToToM API密鑰。
scheme (str) -- 見
geopy.geocoders.options.default_scheme
.timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0domain (str) -- 托管目標TomTom服務的域。
- 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的地理編碼器。
注意
考慮使用
What3WordsV3
取而代之的是。- __init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
api_key (str) -- 密鑰由What3Words(https://accounts.what3words.com/register)提供。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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的地理編碼器。
在 2.2 版本加入.
- __init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
api_key (str) -- 密鑰由What3Words(https://accounts.what3words.com/register)提供。
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
.
- 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地理編碼。
- __init__(api_key, *, timeout=DEFAULT_SENTINEL, proxies=DEFAULT_SENTINEL, user_agent=None, scheme=None, ssl_context=DEFAULT_SENTINEL, adapter_factory=None)?
- 參數
api_key (str) -- Yandex API密鑰,必需??梢栽趧摻荑€https://developer.tech.yandex.ru/
timeout (int) -- 見
geopy.geocoders.options.default_timeout
.proxies (dict) -- 見
geopy.geocoders.options.default_proxies
.user_agent (str) -- 見
geopy.geocoders.options.default_user_agent
.scheme (str) -- 見
geopy.geocoders.options.default_scheme
.ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.adapter_factory (callable) -- 見
geopy.geocoders.options.default_adapter_factory
. .. 版本添加::2.0
- 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 distance 或 great-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))
- 返回類型
- 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
,longitude
或raw
. 最后是一個關于該項目的地理編碼響應的字典。- property point?
geopy.point.Point
表示位置的緯度、經度和高度的實例。- 返回類型
- 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)?
- 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()
博士。
單位換算?
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.ConfigurationError?
基類:
GeopyError
,ValueError
在實例化地理編碼程序時,給出的參數無效。請參閱每個地理編碼器的文檔
__init__
了解更多詳細信息。
- class geopy.exc.GeocoderServiceError?
基類:
GeopyError
調用遠程地理編碼服務時發生異常,地理信息不能再引發更具體的異常。調用geocoder的
geocode
或 reverse 方法時,這是可以引發的最通用的異常,任何非geopy異常都將被捕獲并轉換為該異常。異常的消息將是原始異常的消息。
- class geopy.exc.GeocoderQueryError?
基類:
GeocoderServiceError
,ValueError
Geopy檢測到可能導致請求失敗的輸入,或者發出了請求,遠程地理編碼服務響應該請求是錯誤的。
- class geopy.exc.GeocoderQuotaExceeded?
-
遠程地理編碼服務拒絕完成請求,因為客戶端已使用其配額。
- class geopy.exc.GeocoderRateLimited(message, *, retry_after=None)?
基類:
GeocoderQuotaExceeded
,OSError
遠程地理編碼服務對該請求進行了速率限制。稍后重試可能會有所幫助。
此類型的異常具有
retry_after
屬性,該屬性包含服務要求等待的時間量(以秒為單位)??赡苁?None
如果沒有這樣的數據作為回應。在 2.2 版本加入.
- class geopy.exc.GeocoderAuthenticationFailure?
-
遠程地理編碼服務拒絕使用此地理編碼程序實例化的API密鑰或帳戶憑據。
- class geopy.exc.GeocoderInsufficientPrivileges?
-
遠程地理編碼服務拒絕使用給定的帳戶憑據完成請求。
- class geopy.exc.GeocoderTimedOut?
基類:
GeocoderServiceError
,TimeoutError
對地理編碼服務的調用已中止,因為在
timeout
geocoding類或方法調用(如果指定)的參數。有些服務的速度一直很慢,使用它們可能需要更高的超時。
基類:
GeocoderServiceError
,OSError
要么是無法建立到遠程地理編碼服務的連接,要么是服務響應了一個指示它不可用的代碼。
- class geopy.exc.GeocoderParseError?
-
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)?
-
使用的適配器 requests 類庫。
requests 支持保持有效、重試、持久Cookies、允許響應壓縮和使用HTTP/1.1 [目前] .
requests
必須安裝包才能使用此適配器。
- class geopy.adapters.URLLibAdapter(*, proxies, ssl_context)?
-
使用Python標準庫中的urllib的回退適配器,請參閱
urllib.request.urlopen()
.urllib不支持保持有效、請求重試、不持久化Cookies,并且僅支持HTTP/1.1。
urllib是geopy1.x中發出請求的唯一可用選項,因此這個適配器在HTTP請求方面的行為與geopy1.x相同。
基類?
- class geopy.adapters.AdapterHTTPError(message, *, status_code, headers, text)?
基類:
OSError
當接收到狀態代碼不成功的HTTP響應時,適配器必須引發的異常。
基Geocoder類將此異常轉換為
geopy.exc.GeocoderServiceError
.
- class geopy.adapters.BaseAdapter(*, proxies, ssl_context)?
適配器的基類。
適配器有兩種類型:
BaseSyncAdapter
--同步適配器,BaseAsyncAdapter
--異步(異步)適配器。
具體的適配器實現必須擴展上面兩個基本適配器中的一個。
見
geopy.geocoders.options.default_adapter_factory
有關如何指定地理編碼器使用的適配器的詳細信息。- __init__(*, proxies, ssl_context)?
初始化適配器。
- 參數
proxies (dict) -- urllib樣式代理dict,例如。
{{"http": "192.0.2.0:8080", "https": "192.0.2.0:8080"}}
,{{"https": "http://user:passw0rd@192.0.2.0:8080""}}
. 見geopy.geocoders.options.default_proxies
(請注意,適配器總是接收dict:字符串代理在基中被轉換為dictgeopy.geocoders.base.Geocoder
類)。ssl_context (
ssl.SSLContext
) -- 見geopy.geocoders.options.default_ssl_context
.
- abstract get_json(url, *, timeout, headers)?
等同于
get_text
但響應應該是有效的JSON。返回的值是解析后的JSON。geopy.exc.GeocoderParseError
如果無法分析響應,則必須引發。- 參數
url (str) -- 目標URL。
timeout (float) -- 見
geopy.geocoders.options.default_timeout
.headers (dict) -- 具有自定義HTTP請求頭的dict。
- abstract get_text(url, *, timeout, headers)?
發出GET請求并以字符串形式返回響應。
此方法不應引發除以下情況外的任何異常:
geopy.adapters.AdapterHTTPError
如果成功檢索到響應,但狀態代碼不成功,則應引發。geopy.exc.GeocoderTimedOut
應在請求超時時引發。geopy.exc.GeocoderUnavailable
當目標主機無法訪問時引發。geopy.exc.GeocoderServiceError
是異常層次結構中最不具體的錯誤,在任何其他情況下都應引發。
- 參數
url (str) -- 目標URL。
timeout (float) -- 見
geopy.geocoders.options.default_timeout
.headers (dict) -- 具有自定義HTTP請求頭的dict。
- 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
切換以查看代碼是否發出警告。
為了減少升級的痛苦,請在升級之前閱讀變更日志。