`osmnx.shortest_path` возвращает `None` для допустимых узлов происхождения и назначения.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 `osmnx.shortest_path` возвращает `None` для допустимых узлов происхождения и назначения.

Сообщение Anonymous »

Описание
При вычислении кратчайшего пути между двумя местоположениями с помощью OSMnx функции ox.shortest_path() не удалось получить какой-либо маршрут, и она возвращает None
origin_lat=42.482, origin_lon=-70.910, dest_lat=42.472, dest_lon=-70.957
Точки, которые я опрашиваю, вполне нормальные, т. е. они не очень далеко/близко друг от друга, и между ними есть четкая дорожная сеть.Вот результат, когда я использую веб-страницу OSM:
Результаты маршрутизации с помощью веб-страницы OSM
Мои вопросы:
  • Какова основная причина этой проблемы?
  • Что я могу сделать, чтобы предотвратить эту проблему?
  • Если это так, в некоторых случаях невозможно предотвратить, какие резервные копии/альтернативы мне рекомендуются, чтобы мой код работал с разумными маршрутами/расстояниями?
Минимальный воспроизводимый пример
from shapely.geometry import Polygon
import osmnx as ox

region_bounds = [
[42.49897315546415, -70.97752844338558],
[42.497310679689555, -70.89216747227316],
[42.45989329011355, -70.90617955621047],
[42.457041524105065, -70.97768950182164],
]
region_bounds.append(region_bounds[-1])

region_polygon = Polygon([bounds[::-1] for bounds in region_bounds])

mode = "drive"

G = ox.graph_from_polygon(polygon=region_polygon, network_type=mode)
G = ox.add_edge_speeds(G)
G = ox.add_edge_travel_times(G)

origin_lat = 42.482
origin_lon = -70.910

dest_lat = 42.472
dest_lon = -70.957

origin_nodes = ox.distance.nearest_nodes(G, origin_lon, origin_lat)
dest_nodes = ox.distance.nearest_nodes(G, dest_lon, dest_lat)

routes = ox.shortest_path(G, origin_nodes, dest_nodes)

print(origin_nodes, dest_nodes, routes)

Выходные данные: 68758830 65236189 Нет, что означает, что ox.distance.nearest_nodes нашел действительные узлы происхождения и назначения, но ox.shortest_path не удалось.
Ожидаемое поведение
Когда я немного изменил запрос, чтобы он был
origin_lat = 42.452
origin_lon = -70.910

dest_lat = 42.472
dest_lon = -70.957

Приведенный выше код позволяет найти допустимые маршруты
68754328 65236189 [68754328, 68752028, 68757205, 68766524, 68769796, 68777219, 68761577, 68759405, 68766786, 68747897, 68755811, 68764727, 68765868, 68755029, 2041487395, 2041487385, 68758705, 68771074, 68751303, 68770735, 68747441, 65186124, 65232064, 65258971, 65258184, 65198797, 65243553, 2041154812, 65261211, 65218821, 65210373, 65208978, 65255290, 65231546, 65190866, 65226679, 65193542, 65239462, 65225225, 2041270157, 65257919, 65186045, 2041270160, 65262590, 2041270186, 65252676, 65232296, 65242158, 65261501, 65221801, 65251183, 65190759, 65218681, 65222417, 2043144587, 65250858, 2043144592, 65247406, 65224701, 65231219, 65202428, 65242218, 65235268, 65197313, 65240735, 65207550, 2045575158, 65227845, 65229809, 65190291, 65217006, 2045610191, 9966458026, 65195913, 65214016, 65241686, 65240704, 65202519, 65201239, 65242936, 65233288, 65186829, 65199167, 65239099, 65242030, 65237992, 65236189]


Подробнее здесь: https://stackoverflow.com/questions/783 ... tion-nodes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»