Всем привет.
Есть полигональный слой с земельными участками и слой дорог. Дороги бывают нескольких типов (тип дороги отражен в атрибуте). Задача следующая: рассчитать расстояния от земельных участков до разных типов дорог по графу дорог. Первым делом я нашел тип ближайшей дороги к каждому ЗУ с помощью выражения "overlay_nearest(layer:='Road', expression:="Type", limit:=1)[0]".
Далее я нашел расстояние до этой дороги.
Выражение:
"length(shortest_line($geometry, geometry( get_feature( 'Road',fid, overlay_nearest(layer:='Road', expression:=fid, limit:=1)[0] ) ) ))".
Далее я нашел ближайшую точку на слое дорог от ЗУ.
Выражение:
"end_point( shortest_line($geometry, geometry( get_feature( 'road',fid, overlay_nearest(layer:='road', expression:=fid, limit:=1)[0] ) ) ))".
И вот теперь от множества этих точек (Множество А) мне нужно рассчитать расстояния до остальных типов дорог.
Предварительно я нашел "пересечения" разных типов дорог получив множество точек (Множество Б).
То есть мне нужно найти расстояние от Аn до нескольких точек Б (количество точек зависит от количества типов дорог)
С помощью библиотеки сетевого анализа я написал алгоритм, который считает расстояние от Аn до всех точек Б (используя слой дорог как граф) и выбирает минимальные расстояние для каждого типа дорог.
Проблема в следующем: Множество точек Б очень велико и алгоритм работает медленно.
Есть у кого идеи как сократить множество Б(Я уже прописал в алгоритме, чтобы он не считал расстояние до типа дороги, который является ближайшим)?.
Расчет расстояний по графу
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 05 май 2022, 06:12
- Репутация: 0
- Откуда: Kamchatka
-
- Активный участник
- Сообщения: 212
- Зарегистрирован: 11 авг 2015, 16:13
- Репутация: 45
Re: Расчет расстояний по графу
Есть такая функция
Distance matrix
This algorithm creates a table containing a distance matrix, with distances between all the points in a points layer.
Там можно указать сколько использовать ближайших точек. К сожалению, это число постоянное.
Может это даже лучше?
Distance matrix
This algorithm creates a table containing a distance matrix, with distances between all the points in a points layer.
Там можно указать сколько использовать ближайших точек. К сожалению, это число постоянное.
Может это даже лучше?
-
- Активный участник
- Сообщения: 212
- Зарегистрирован: 11 авг 2015, 16:13
- Репутация: 45
Re: Расчет расстояний по графу
Извините, вам нужно вдоль дорог...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей