OSM:如何在给定的 GPS 轨道上获得停车标志或交通信号?

问题描述

我对 OSM 主题有点陌生。 我使用 python 和 openrouteservice API 和/或 open source routing machine 在多个位置之间路由并获取 GPS 轨迹。对于 ORS,我只得到纬度/经度点,而对于 OSRM,我还得到这些位置的 OSM node_id。

我现在想要获取放置在我拥有的这条轨道上的所有停车标志或交通信号。另外 OSM 的 max_speed 标签会很好。

现在,我有一个列表 nodes,其中包含我从 OSRM 获得的所有 node_id,我像这样传递给 Overpass (overpy)(轨道/节点的小摘录):

import overpy
api = overpy.Overpass()

nodes = [4395513964,1006458940,4395513968,74195178,252285485,27299730,1965668925]

q_string = "[out:json]; (node(id:4395513964,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,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,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,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,<overpy.Way id=185880949 nodes=[27299730,1965668928]>,<overpy.Way id=254835095 nodes=[1006458940,74195178]>,<overpy.Way id=441856854 nodes=[74195178,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,401315477]>]

理论上,我现在可以使用 .tag 进行访问并搜索 max_speed。
但是,例如节点 1006458940 是路径 5208724、86580217 和 254835095 的一部分,这使得很难获得正确的路径。
实现我的目标的最佳方法是拥有一个带有纬度/经度点和可能的最大速度、停车标志或交通信号的 GPS 轨迹?

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)