【发布时间】:2019-09-12 14:59:05
【问题描述】:
我正在尝试显示 OpenStreetMap 公交车站节点 439460636 (https://www.openstreetmap.org/node/439460636) 的信息,该节点是高速公路的一部分。
我正在使用 Python3 Osmnx
其他 POI 均显示完美。只是不是那些没有被映射为“便利设施”的人。 (还有更多例子)
我正在使用 jupyter notebook 进行分析:
import osmnx as ox
# Retrieve POI shelters
place_name = 'Santa Clara, Santa Clara County, California, USA'
shelter = ox.pois_from_place(place_name, amenities=['shelter'])
cols = ['amenity', 'name', 'element_type', 'shelter_type',
'building', 'network'
]
shelter[cols]
cols = ['amenity', 'name','element_type', 'shelter_type',
'building', 'network'
]
shelter[cols].loc[(shelter['shelter_type'] == 'public_transport') ]
# Look bus-stop in highway
graph = ox.graph_from_place(place_name)
nodes, edges = ox.graph_to_gdfs(graph)
nodes.loc[(nodes['highway'] == 'bus_stop') ]
立交桥:
[out:json][timeout:25];
// gather results
(
area[name="Santa Clara, Santa Clara County, California, USA"];
node(area)["highway"="bus_stop"]({{bbox}});
);
// print results
out body;
>;
out skel qt;
POI Kino (439460636) 未列出。列出了 POI 旁边的避难所。 POI 在我所在区域的中间,所以我不明白如何检索节点信息。你能帮忙吗?
【问题讨论】:
-
node 439460636 是不是高速公路的一部分,它只有一个
highway=bus_stop标签。这只是一个tag,与element type 没有太大关系。我猜graph_from_place()不包括公交车站,因为它们并不是道路网络的一部分。您可能需要调用不同的函数,但不幸的是我不熟悉 osmnx。 -
pois_from_place()只寻找便利设施而不接受其他键的事实对我来说似乎是一个设计错误。 POI 可以有各种标签,而不仅仅是amenity。或许您可以使用overpass_request()下载兴趣点。 -
这个 Overpass 查询找到节点...:[out:json][timeout:25]; // 收集结果 ( node["highway"="bus_stop"]({{bbox}}); ); // 打印结果 body; >;出 skel qt;
-
这是 Osmnx 中的一个“功能”。在 11 月,chesterharvey 创建了一个更新,这似乎还不是标准的一部分。手动替换文件,它现在可以工作了。 github.com/gboeing/osmnx/issues/116#issuecomment-439577495
-
太棒了!我想您可以将其发布为您问题的答案。
标签: python openstreetmap osmnx