我对 OSM 主题有点陌生。我使用 python 和openrouteservice API 和/或开源路由机在多个位置之间进行路由并获取 gps 轨迹。对于 ORS,我只获得纬度/经度点,而使用 OSRM,我还获得这些位置的 OSM node_ids。
我现在想获取放置在我拥有的这条轨道上的所有停车标志或交通信号。此外,OSM 的 max_speed 标签会很好。
现在,我有一个列表nodes
,其中包含我从 OSRM 获得的所有 node_ids,我像这样传递到Overpass (overpy)(轨道/节点的小摘录):
import overpy
api = overpy.Overpass()
nodes = [4395513964, 1006458940, 4395513968, 74195178, 252285485, 27299730, 1965668925]
q_string = "[out:json]; (node(id:4395513964,1006458940,4395513968,74195178,252285485,27299730,1965668925); <; ); out;"
result = api.query(query_str)
result.ways
我得到了 10 种这样的输出:
[<overpy.Way id=4469704 nodes=[261755935, 261755936, 261755937, 1380714175, 82658976, 261755939, 82658975, 1380714202, 1380714262, 1380714246, 261756526, 1380714333, 261756547, 1380714293, 4428238953, 1380714171, 261756538, 1380714208, 261756536, 4428238913, 4428238956, 4428238985, 4428238977, 4428238962, 4428238916, 4428239393, 252285485, 27299730, 1965668925, 276105787, 276105785, 1965668928, 27299735, 2579884910, 384909488, 256853874, 401315477, 6311080568, 401315476, 6311080559, 6311080545, 401315475, 401315470, 401315463, 401315462, 401315461, 401315460, 401315459, 6311080543, 401315457, 1418193768, 27299743, 82658982, 82658981, 1331086552, 261755934, 261755935]>,
<overpy.Way id=5208724 nodes=[27299725, 35208368, 4395513964, 1006458940]>,
<overpy.Way id=23265821 nodes=[74195178, 74195176]>,
<overpy.Way id=29261149 nodes=[1514552612, 321790693, 1514552609, 321790695, 251787168, 1514552502, 4663410835, 1514552465, 321791085, 1885139505, 1885139525, 321791087, 321791088, 321791089, 321791090, 321791091, 321791092, 321793186, 1909678245, 1909678399, 1573798824, 1909678354, 1909678255, 1573798815, 1573798778, 321793187, 1909678357, 1909678322, 321793188, 1909678379, 1909678315, 1909678373, 1319918314, 1909678395, 321793189, 1909678232, 1909678277, 321793190, 321792834, 2169769137, 321792835, 8357422315, 321793192, 2007050001, 321793193, 321793194, 2007099031, 2007099047, 2007099025, 2007099033, 321793195, 2007099094, 2007099023, 2007099075, 2007099088, 2007099064, 2007099037, 2007099119, 2007099073, 2096441917, 2096441915, 321793197, 8672322017, 8672288116, 321793198, 321793199, 8203474805, 8203474803, 321793200, 321793201, 321793202, 8203474794, 8203513923, 321793205, 321793206, 321793207, 321793528, 321793990, 321793991, 4368234952, 4975522960, 252285485, 27299730, 1965668925, 276105787, 276105785, 1965668928, 27299735, 2579884910, 384909488, 256853874, 401315477, 6311080568, 401315476, 6311080559, 6311080545, 401315475, 401315470, 401315463, 401315461, 401315460, 401315459, 6311080543, 6311080538, 1514552637, 1514552631, 321790691, 1514485305, 76597613, 1514485295, 1514485289, 1514485283, 1514485282, 251787103, 321790692, 1514552646]>,
<overpy.Way id=29375200 nodes=[256207576, 2282603330, 256207577, 4054297285, 256207578, 256207580, 256207581, 4054297283, 256207582, 256207583, 322782340, 256207584, 256207585, 256207586, 256207587, 256207588, 256207590, 256207591, 256207592, 256207593, 256207594, 256207595, 256207596, 256207895, 1380745682, 4395513974, 1380745679, 1380745675, 1380745690, 4395513973, 252284576, 1380714265, 1380745695, 1380745678, 1380745681, 1380745687, 252284577, 252284578, 252284579, 252284580, 252285485, 252285486, 252284581, 3178786418, 654245173, 252284582, 252284583, 252284584, 1575156370, 252284585, 1575155933, 252284586, 1575155956, 252284587, 3178786416, 252284588, 252284589, 1575155948, 252284590, 252284591, 252285487, 252284592, 252284593, 252284594, 654245206, 5030439492, 569718577, 569718721, 569718790, 569718814]>,
<overpy.Way id=86580217 nodes=[1006458962, 4395513960, 1006458901, 4975523007, 1006458940]>,
<overpy.Way id=185880949 nodes=[27299730, 1965668925, 276105787, 276105785, 1965668928]>,
<overpy.Way id=254835095 nodes=[1006458940, 4395513968, 74195178]>,
<overpy.Way id=441856854 nodes=[74195178, 252285485, 27299730]>,
<overpy.Way id=673906436 nodes=[401315477, 6311080570, 6311080571, 6311080572, 6311080573, 6311080574, 6311080575, 6311080576, 6311080577, 6311080578, 6311080579, 6311080580, 6311080581, 6311080582, 6311080583, 6311080584, 6311082385, 6311082386, 6311082387, 6311082388, 6311082389, 6311082390, 6311082391, 6311082392, 6311082393, 6311082394, 6311082395, 74195173, 2399394286, 1006458938, 74195174, 1006458918, 252285485, 27299730, 1965668925, 276105787, 276105785, 1965668928, 27299735, 2579884910, 384909488, 256853874, 401315477]>]
理论上我现在可以使用.tag
和搜索 max_speed 的方式。
但是,例如节点 1006458940 是路径 5208724、86580217 和 254835095 的一部分,因此很难找到正确的路径。
实现具有纬度/经度点和可能的最大速度、停车标志或交通信号的 gps 轨道目标的最佳方法是什么?
谢谢你的帮助。