繁体   English   中英

在 python 中着色 osm 图边缘

[英]Coloring osm graph edges in python

我正在尝试制作一个 map ,其中某条路线(例如路线中包含的边缘)是彩色的。 现在,我有以下代码:

node_route=[1223724841, 1688813022, 2464466873, 1688813022, 1688813022, 1688813022, 1688813022]
ec = ['w' for u, v, k in G_map.edges(keys=True)] 
for i in range(len(node_route)-1):
    ec = ['r' for u, v, k in G_map.edges(keys=True) if (u==node_route[i] and v==node_route[i+1])]
    
fig, ax = ox.plot_graph(G_map, node_color='r', node_edgecolor='k', node_size=40, node_zorder=3, edge_color=ec, edge_linewidth=1)  

列表 node_rote 是我想要着色的有序路线。 我首先将“w”分配给图形 (G_map) 中的每条边。 然后我检查我的 node_route 列表中的每一对(索引 i 和 i+1),如果这对等于图形边缘的“u”和“v”,它将用“r”着色。 问题是此代码返回一个空列表。

谢谢您的帮助!

对于初学者,每次循环都重新分配ec ,丢弃较早的值。

如果我正确理解你正在尝试做什么,你可能最好构建一个字典,将节点 id:s 映射到 node_route 中的node_route 然后遍历G_map.edges(...) ,使用字典node_routeuv节点的位置,并根据pos[u]+1 == pos[v]是否附加 'r' 或 'w' 到ec pos[u]+1 == pos[v]与否。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM