在 Osmnx 中使用未简化的网络时出现错误图

Wrong plot when using the not simplified network in Osmnx

使用 Osmnx,我正在绘制一个由两个区组成的网络,当我使用 simplify = True 时,两个区都出现了。但是当我使用simplify = False时只出现一个区(我需要使用未简化的网络)。有谁知道为什么?

代码如下:

import networkx as nx
import matplotlib.pyplot as plt
import osmnx as ox
import pandas as pd
from shapely.wkt import loads as load_wkt
import numpy as np
import matplotlib.cm as cm
ox.config(log_console=True, use_cache=True)
import matplotlib as mpl
import random as rd


distrito = ['Setúbal District','Lisbon District']
G = ox.graph_from_place(distrito, network_type='all_private', simplify=False)

fig, ax = ox.plot_graph(G)

当使用 simplify = True 时,我得到了这张图片:

当我使用 simplify = False 我得到这个:

简短的回答是:塞图巴尔和里斯本的边界并不连续。在塔霍河口,他们之间有一道鸿沟。这个差距由 25 de Abril 桥跨越。如果您使用 retain_all=True,两种方法的结果应该大致相同。

较长的答案是:当 simplify=True 删除沿边缘的间隙节点以仅保留真正的交叉点和死胡同处的节点时。这种简化允许 25 de Abril 桥作为一条边跨越两个不连续的边界(塞图巴尔和里斯本)。因此它不会被删除,即使它位于您请求的边界之外。当 simplify=False 时,你会得到一个断开连接的图(因为连接两个组件的桥没有保留,因为所有节点都在你请求的边界之外),导致当你使用retain_all=False.

的默认参数化