Наименования районов и номера участков в полигональный слой улиц.

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
getup
Новоприбывший
Сообщения: 14
Зарегистрирован: 08 фев 2012, 11:22
Репутация: 0

Наименования районов и номера участков в полигональный слой улиц.

Сообщение getup » 19 ноя 2020, 16:09

Коллеги,добрый день! Есть задача,в полигональные улицы (контуры основаны на бортах улиц) пробить названия районов,через которые улица проходит и номера кадастровых участков через которые она проходит. Если улица пересекает несколько объектов, их наименования должны быть записаны через запятую. Вижу возможный алгоритм решения,но быть может эту задачу можно решить проще и быстрее?
На примере районов.
1. Контуром улиц обрезать полигоны районов,оставив только то что попало внутрь контура
2. Построить центройды от полигонов с их семантическими данными
3.Пробить id в слое дорог
4.Пространственным соединением (intersects или within) ,указав тип(создать объект для каждого совпадения один-ко многим) получить свойства из точек
5.На основе id агрегировать полученные полигоны, собрав значения из колонок с наименованием в одну колонку, с разделителем запятой.

Спасибо
Вложения
улицы.JPG
улицы.JPG (68.92 КБ) 425 просмотров

trir
Гуру
Сообщения: 4711
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 884
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение trir » 19 ноя 2020, 17:02

можно решить одним SQL-запросом

getup
Новоприбывший
Сообщения: 14
Зарегистрирован: 08 фев 2012, 11:22
Репутация: 0

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение getup » 20 ноя 2020, 11:40

trir писал(а):
19 ноя 2020, 17:02
можно решить одним SQL-запросом
Если знать как,но я, к сожалению не силен в sql, поэтому сперва делаю на кнопках,потом в model builder. Может быть сможете что-то подсказать?

trir
Гуру
Сообщения: 4711
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 884
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение trir » 20 ноя 2020, 12:11

если выложишь пример данных - могу попробывать написать запрос

getup
Новоприбывший
Сообщения: 14
Зарегистрирован: 08 фев 2012, 11:22
Репутация: 0

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение getup » 23 ноя 2020, 12:19

trir писал(а):
20 ноя 2020, 12:11
если выложишь пример данных - могу попробывать написать запрос
Вернуться к началу
Пожайлуста. https://yadi.sk/d/uxnx-dAZ9fIGXw
Единственное, планировал вставить в процесс фильтр вхождения,.т.е если площадь участка, попадающего в улицу меньше заданной величины,то свойства участка (наименование) не учитывается.

getup
Новоприбывший
Сообщения: 14
Зарегистрирован: 08 фев 2012, 11:22
Репутация: 0

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение getup » 23 ноя 2020, 15:13

Мой метод не получился( Т.к центройды от участков не везде попадают в пределы полигона с улицами.

trir
Гуру
Сообщения: 4711
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 884
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение trir » 23 ноя 2020, 22:21

перегнал в 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
по участкам делается также

getup
Новоприбывший
Сообщения: 14
Зарегистрирован: 08 фев 2012, 11:22
Репутация: 0

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение getup » 24 ноя 2020, 10:14

Спасибо вам огромное!!Попробую!

blacktesta
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 авг 2020, 11:51
Репутация: 2
Откуда: Воронеж, Тула

Re: Наименования районов и номера участков в полигональный слой улиц.

Сообщение blacktesta » 26 ноя 2020, 01:52

Можно использовать функцию aggregate в калькуляторе полей.
https://spatialthoughts.com/2019/04/12/ ... tion-qgis/

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 18 гостей