Страница 1 из 1
Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 19 ноя 2020, 16:09
getup
Коллеги,добрый день! Есть задача,в полигональные улицы (контуры основаны на бортах улиц) пробить названия районов,через которые улица проходит и номера кадастровых участков через которые она проходит. Если улица пересекает несколько объектов, их наименования должны быть записаны через запятую. Вижу возможный алгоритм решения,но быть может эту задачу можно решить проще и быстрее?
На примере районов.
1. Контуром улиц обрезать полигоны районов,оставив только то что попало внутрь контура
2. Построить центройды от полигонов с их семантическими данными
3.Пробить id в слое дорог
4.Пространственным соединением (intersects или within) ,указав тип(создать объект для каждого совпадения один-ко многим) получить свойства из точек
5.На основе id агрегировать полученные полигоны, собрав значения из колонок с наименованием в одну колонку, с разделителем запятой.
Спасибо
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 19 ноя 2020, 17:02
trir
можно решить одним SQL-запросом
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 20 ноя 2020, 11:40
getup
trir писал(а): ↑19 ноя 2020, 17:02можно решить одним SQL-запросом
Если знать как,но я, к сожалению не силен в sql, поэтому сперва делаю на кнопках,потом в model builder. Может быть сможете что-то подсказать?
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 20 ноя 2020, 12:11
trir
если выложишь пример данных - могу попробывать написать запрос
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 23 ноя 2020, 12:19
getup
trir писал(а): ↑20 ноя 2020, 12:11если выложишь пример данных - могу попробывать написать запрос
Вернуться к началу
Пожайлуста.
https://yadi.sk/d/uxnx-dAZ9fIGXw
Единственное, планировал вставить в процесс фильтр вхождения,.т.е если площадь участка, попадающего в улицу меньше заданной величины,то свойства участка (наименование) не учитывается.
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 23 ноя 2020, 15:13
getup
Мой метод не получился( Т.к центройды от участков не везде попадают в пределы полигона с улицами.
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 23 ноя 2020, 22:21
trir
перегнал в MS SQL Server - мне так удобней
вот запрос разбивающий улицы по районам
Код: Выделить всё
SELECT ss.[id], ss.[geom].STIntersection(rn.[geom]), rn.[n_raion], rn.[name_raion]
FROM [test1].[dbo].[testgeom3] as ss, [dbo].[rayon] as rn
where ss.[geom].STIntersection(rn.[geom]).STIsEmpty() <> 1
по участкам делается также
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 24 ноя 2020, 10:14
getup
Спасибо вам огромное!!Попробую!
Re: Наименования районов и номера участков в полигональный слой улиц.
Добавлено: 26 ноя 2020, 01:52
blacktesta
Можно использовать функцию aggregate в калькуляторе полей.
https://spatialthoughts.com/2019/04/12/ ... tion-qgis/