使用OSMnx按bbox截断图:如何在边界创建虚拟节点?
问题:使用OSMnx截断路网时在边界创建虚拟节点的简便方法
我尝试使用OSMnx按bbox(边界框)截断路网图,按官方文档操作可正常运行,复现代码如下:
import numpy as np import osmnx as ox import geopandas as gpd import networkx as nx import matplotlib.pyplot as plt N, S, E, W = 1.3235381983186159, 1.319982801681384, \ 103.85361309942331 , 103.84833190057668, graph = ox.graph_from_bbox(N, S, E, W, \ network_type='drive') nodes= ox.graph_to_gdfs(graph, nodes=True, edges=False) edges= ox.graph_to_gdfs(graph, edges=True, nodes=False) fig, ax = ox.plot.plot_graph( graph, ax=None, figsize=(10, 10), bgcolor="white", node_color="red", node_size=5, node_alpha=None, node_edgecolor="none", node_zorder=1, edge_color="black", edge_linewidth=0.1, edge_alpha=None, show=False, close=False, save=False, bbox=None, ) W_ = W + (E-W) * 0.8 S_ = S + (N-S)*0.7 width = (E - W)*0.07 height = (N - S)*0.1 rect = plt.Rectangle((W_, S_), width, height, facecolor="green", alpha=0.3, edgecolor=None) ax.add_patch(rect) plt.show() g_truncated = ox.truncate.truncate_graph_bbox(graph, S_ + height, S_, W_+width, W_, truncate_by_edge=False) ox.plot_graph(g_truncated)
当前截断后的图如图所示,我希望提取子图时在边界处创建虚拟节点,得到如图所示的包含6个黑色节点的目标子图。考虑到OSMnx的广泛应用,是否存在简便直接的实现方法?
内容的提问来源于stack exchange,提问作者lifezbeautiful
相关产品推荐
相关产品推荐

