首页 > 解决方案 > OSMNX 网络地图中的街道名称

问题描述

我正在使用以下代码在 osmnx 上构建街道网络。我看到我可以打印纬度/经度信息,但是

输出:

在此处输入图像描述

标签: pythongisosmnx

解决方案


以下是使用 OSMnx 注释地图以显示街道/道路名称(或绘图中的任何其他边缘属性)的方法。相同的逻辑将适用于标记节点。

import matplotlib.pyplot as plt
import osmnx as ox
ox.config(use_cache=True, log_console=True)

G = ox.graph_from_address('Piedmont, CA, USA', dist=200, network_type='drive')
G = ox.get_undirected(G)

fig, ax = ox.plot_graph(G, bgcolor='k', edge_linewidth=3, node_size=0,
                        show=False, close=False)
for _, edge in ox.graph_to_gdfs(G, nodes=False).fillna('').iterrows():
    c = edge['geometry'].centroid
    text = edge['name']
    ax.annotate(text, (c.x, c.y), c='w')
plt.show()

在此处输入图像描述

唯一的美学挑战是标签放置问题,这是计算制图学中最困难的问题之一。


推荐阅读