我有一个反复出现的问题,我找不到简单的解决方案,但我猜有一个。
我有一个代表街道级别道路交通数据的数据集。该数据集与道路网络图相关联,其中每条边代表一条道路,每个节点代表一个交叉路口。对于每条边,我都有一个
shapely
LineString 对象,其中包含道路的地理属性。
我的目标是绘制一张代表该流量数据集的地图。例如,我可以使用
geopandas
轻松做到这一点,但我的问题来自这样一个事实:大多数道路,即使是双向的,也用单个 LineString 对象表示,因此不会看到其中一个方向因为两者都会绘制在彼此之上。
以下代码片段使用 offset_curve 将线字符串加倍,我认为这就是您正在寻找的。
data = np.array([np.linspace(0,10), np.sin(np.linspace(0,10))])
road = shapely.LineString(data.T)
constant = 0.1
big_road = shapely.MultiLineString([road.offset_curve(constant), road.offset_curve(-constant)])
给出:
from shapely import plotting
plotting.plot_line(big_road)
plt.savefig('example.jpg')