OSMnx geocode_to_gdf 未按 ID 查找路径和节点

问题描述 投票:0回答:1

使用Python中的OSMnx库,提取了一个大的地理数据框,其中有很多ID。 从该 GeoDataFrame 中,我获取了一些 ID,例如,一个 id 为 263515466 且类型为“Way”的元素。

如果我检查 OpenStreetMap 网站,我可以找到这个对象 - https://www.openstreetmap.org/way/263515466

但是当我尝试使用该方法时,确定一些具体信息,例如使用geocode_to_gdf函数,代码:

ox.geocoder.geocode_to_gdf('W263515466', which_result=None, by_osmid=True)

安装所有软件包后的完整代码:

import osmnx as ox

ox.geocoder.geocode_to_gdf('W263515466', which_result=None, by_osmid=True)

我收到一个错误: 错误

错误文本:

---------------------------------------------------------------------------
InsufficientResponseError                 Traceback (most recent call last)
Cell In[534], line 1
----> 1 ox.geocoder.geocode_to_gdf('W263515466', which_result=None, by_osmid=True)

File ~\AppData\Local\anaconda3\Lib\site-packages\osmnx\geocoder.py:139, in geocode_to_gdf(query, which_result, by_osmid, buffer_dist)
    137 gdf = gpd.GeoDataFrame()
    138 for q, wr in zip(query, which_result):
--> 139     gdf = pd.concat([gdf, _geocode_query_to_gdf(q, wr, by_osmid)])
    141 # reset GeoDataFrame index and set its CRS
    142 gdf = gdf.reset_index(drop=True)

File ~\AppData\Local\anaconda3\Lib\site-packages\osmnx\geocoder.py:186, in _geocode_query_to_gdf(query, which_result, by_osmid)
    183 if not results:
    184     # if no results were returned, raise error
    185     msg = f"Nominatim geocoder returned 0 results for query {query!r}"
--> 186     raise InsufficientResponseError(msg)
    188 if by_osmid:
    189     # if searching by OSM ID, always take the first (ie, only) result
    190     result = results[0]

InsufficientResponseError: Nominatim geocoder returned 0 results for query 'W263515466'

为什么会这样?

我本来希望在身份证上看到 GDF,我一直在关注这一点。

python openstreetmap osmnx
1个回答
0
投票

根据 OSMnx docs

geocoder
模块使用 Nominatim API 对您的查询进行地理编码。在某些条件下,OSM 数据库中存在的功能有时并不存在于 Nominatim API 中。

相反,您可以使用

features
模块来查询此位置的要素,并使用与“power=substation”等匹配的标签,然后您就会找到自己的方式。

© www.soinside.com 2019 - 2024. All rights reserved.