python - 如何在 OSMNX 中找到转弯最少的路径?
问题描述
在 OSMNX 中,我们可以推导出道路网络中的街道角度,使得网络中的每条边都有一个方位属性。我试图找到一条从特定来源到特定目的地的转弯最少(最简单的路径)的路径。那是角度最小的路径(路线方向的总变化)
我知道我们可以在 osmnx 和 networkx 中使用最短路径算法,例如 Dijkstra。但是,权重参数只能测量街道(边缘)的距离。它无法在最简单的路径中按预期测量两条街道(边缘)之间的角度,转弯最少。
到目前为止,这是我的代码:
import numpy as np
import osmnx as ox
import networkx as nx
import matplotlib.pyplot as plt
ox.config(log_console=True, use_cache=True)
%matplotlib inline
G = ox.graph_from_place('Turi, Sleman, Yogyakarta, Indonesia', network_type='drive', simplify=False)
G = ox.core.add_edge_lengths(G)
G = ox.add_edge_bearings(G)
route = nx.shortest_path(G, 3728658006, 5388482029, weight='bearing')
fig, ax = ox.plot_graph_route(G, route, node_size=0, fig_height=10)
预期的结果应该是一条在路线方向总变化方面转弯最少的路径。
解决方案
推荐阅读
- spring-boot - 使用 spring-boot webflux 处理错误消息
- amazon-web-services - 在 AppSync 上,如何查询模型按多对多关系排序?
- angular - 如何修复 Angular 10 中的“Type '{ }[]' is missing the following properties from type and 3 more”?
- web - 仅水平响应
- python - 如何在 Python 的列表中获取字符串的位置?
- java - Java Vectors : 使用 Vectors 实现 Pop 功能
- serilog - 使用 Serilog 记录异常
- python - 从 .txt 文件重塑矩阵
- cobol - EXIT 关键字的用途是什么?
- r - 解决承诺后 R Shiny 下载 xlsx