Нахождение одного ЗУ в нескольких территориальных зонах
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Нахождение одного ЗУ в нескольких территориальных зонах
Хочу поделиться способом чёткой визуализации проблемных мест в ПЗиЗ или Генплане (пересечения ЗУ границей территориальной или функциональной зоны) имеющимися средствами Мапинфо. Давно думал и только сегодня осенило.
1. Имеем две таблицы: ЗУ (земельные участки) и ТЗ (территориальные зоны)
2. Таблица --> Обновить колонку...--> Обновить таблицу: ЗУ --> Обновить колонку: Добавить новую временную колонку --> Значения извлечь из: ТЗ -->Обединение: Объект из таблицы ТЗ содержит объект из таблицы ЗУ-->Вычислить: Значение-->Для: Выражение: Area(obj,"hectare")-->OK
2. Таблица --> Обновить колонку...--> Обновить таблицу: ЗУ --> Обновить колонку: Добавить новую временную колонку --> Значения извлечь из: ТЗ -->Обединение: Объект из таблицы ТЗ пересекает объект из таблицы ЗУ-->Вычислить: Proportion Avg-->Для: Выражение: Area(obj,"hectare")-->OK
' Если у земельного участка эти два полученных значения разные, то он пересекается границей ТЗ.
3. Карта-->Создать тематическую карту-->Отдельные значения-->Индивидуальные значения регионов-->Далее-->Таблица: ЗУ-->Поле:Выражение:Первая полученная временная колонка = Вторая полученная временная колонка --> Далее-->Назначаем цвета (я для пересекаемых участков назначил ярко красный цвет, для других без заливки и убрал галочку Заменить стиль слоя)-->OK
Проблемные участки выделяются цветом "динамически", при исправлении границы ТЗ заливка исчезает. Главное, что не показываются проблемными участки, граница которых частично совпадает с границей ТЗ (раньше не мог от этого избавиться).
Высшей математики тут нет, пишу, зная, как мало пользователей Мапинфо использует Выражения и Тематические карты в работе.
Кому интересно, спрашивайте.
1. Имеем две таблицы: ЗУ (земельные участки) и ТЗ (территориальные зоны)
2. Таблица --> Обновить колонку...--> Обновить таблицу: ЗУ --> Обновить колонку: Добавить новую временную колонку --> Значения извлечь из: ТЗ -->Обединение: Объект из таблицы ТЗ содержит объект из таблицы ЗУ-->Вычислить: Значение-->Для: Выражение: Area(obj,"hectare")-->OK
2. Таблица --> Обновить колонку...--> Обновить таблицу: ЗУ --> Обновить колонку: Добавить новую временную колонку --> Значения извлечь из: ТЗ -->Обединение: Объект из таблицы ТЗ пересекает объект из таблицы ЗУ-->Вычислить: Proportion Avg-->Для: Выражение: Area(obj,"hectare")-->OK
' Если у земельного участка эти два полученных значения разные, то он пересекается границей ТЗ.
3. Карта-->Создать тематическую карту-->Отдельные значения-->Индивидуальные значения регионов-->Далее-->Таблица: ЗУ-->Поле:Выражение:Первая полученная временная колонка = Вторая полученная временная колонка --> Далее-->Назначаем цвета (я для пересекаемых участков назначил ярко красный цвет, для других без заливки и убрал галочку Заменить стиль слоя)-->OK
Проблемные участки выделяются цветом "динамически", при исправлении границы ТЗ заливка исчезает. Главное, что не показываются проблемными участки, граница которых частично совпадает с границей ТЗ (раньше не мог от этого избавиться).
Высшей математики тут нет, пишу, зная, как мало пользователей Мапинфо использует Выражения и Тематические карты в работе.
Кому интересно, спрашивайте.
- Вложения
-
- Вот так это выглядит
- Untitled.jpg (1.23 МБ) 11419 просмотров
- Institor
- Активный участник
- Сообщения: 243
- Зарегистрирован: 22 апр 2011, 08:10
- Репутация: 27
- Откуда: Хабаровск
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Эммм, так их же можно выбрать запросом прям в отдельную таблицу, не?
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Давайте попробуем, может и правда... Какой текст запроса предложите? Нужно выбрать участки, которые именно пересекаются, т.к. есть случаи, когда зона и участок имеют общие границы.Institor писал(а):Эммм, так их же можно выбрать запросом прям в отдельную таблицу, не?
В моём случае вместо создания тематической карты также можно их запросить, но выборка не изменится при исправлении границ, а тематика перестроится.
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Нахождение одного ЗУ в нескольких территориальных зонах
А выложите пример, хотя бы на 10 объектов, что бы мы могли мозг размять. У меня есть пара идей.
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Я упражнялся на кадастровом делении. Как это ни удивительно, но участков пересекающих границы кадастровый кварталов там пруд пруди. Но могу смоделировать ситуацию. Завтра на работе.
Главная проблема в участках, имеющих общую границу с зоной (кварталом).
Главная проблема в участках, имеющих общую границу с зоной (кварталом).
-
- Активный участник
- Сообщения: 161
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Вот вариант запроса решающий эту задачу (сформирован через меню SQL-запрос).
Select lots.ID, zones.Name from lots, zones where lots.Obj Intersects zones.Obj And AreaOverlap(lots.obj,zones.obj)>0 into Selection
Его можно сохранить и при необходимости загружать. На мой взгляд, такой подход более технологичен, требуется всего две операции загрузить запрос и выполнить запрос.
Select lots.ID, zones.Name from lots, zones where lots.Obj Intersects zones.Obj And AreaOverlap(lots.obj,zones.obj)>0 into Selection
Его можно сохранить и при необходимости загружать. На мой взгляд, такой подход более технологичен, требуется всего две операции загрузить запрос и выполнить запрос.
- Вложения
-
- miHG020.png (11.75 КБ) 11305 просмотров
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: Нахождение одного ЗУ в нескольких территориальных зонах
В нашей работе запрос - сомнительная технологичность. Требуется устранить пересечения, на что динамическое обновление колонки и тематика от реагируют сразу, а запрос что? Загружать всякий раз чтоб проверить?
А вот про функцию areaoverlap забываю постоянно, она из относительно новых?
Завтра протестирую Ваш запрос на своих данных, чую не всё так просто.
А вот про функцию areaoverlap забываю постоянно, она из относительно новых?
Завтра протестирую Ваш запрос на своих данных, чую не всё так просто.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Нахождение одного ЗУ в нескольких территориальных зонах
такой запрос вроде выберет всех, не хватает чего-то типаthegeo писал(а):Вот вариант запроса решающий эту задачу (сформирован через меню SQL-запрос).
Select lots.ID, zones.Name from lots, zones where lots.Obj Intersects zones.Obj And AreaOverlap(lots.obj,zones.obj)>0 into Selection
group by(lots.ID)
having(count(*)>1)
-
- Активный участник
- Сообщения: 161
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Приведу еще раз картинку с результатом выполненного запроса. Желтое – зоны, зеленое – участки. Три участка выбрано. Добавлено изображение таблицы выборки в виде списка.
- Вложения
-
- miHG021.png (14.12 КБ) 11269 просмотров
- Institor
- Активный участник
- Сообщения: 243
- Зарегистрирован: 22 апр 2011, 08:10
- Репутация: 27
- Откуда: Хабаровск
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Да, пожалуй для динамического обновления этот способ единственный. Запрос придется все время вручную обновлять.
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Смоделировал...
В архиве пример данных. Рабочий набор сразу откроет с временными колонками, тематикой и выборкой от thegeo.
Можно подвигать узлы и увидеть как изменяется тематика.
Выборка не работает, так как ситуация действительно сложнее (полагаю это я не очень толково объяснил, какого результата нужно достичь).
На рисунках результат.
В архиве пример данных. Рабочий набор сразу откроет с временными колонками, тематикой и выборкой от thegeo.
Можно подвигать узлы и увидеть как изменяется тематика.
Выборка не работает, так как ситуация действительно сложнее (полагаю это я не очень толково объяснил, какого результата нужно достичь).
На рисунках результат.
- Вложения
-
- Запрос участки.Obj intersects зоны.Obj and areaoverlap(участки.obj,зоны.obj)>0
- сп2.jpg (3.89 МБ) 11230 просмотров
-
- Динамическое обновление
- сп1.jpg (2.75 МБ) 11230 просмотров
-
ЗУ.zip
- Пример данных
- (6.37 КБ) 354 скачивания
-
- Активный участник
- Сообщения: 161
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Уточнилась постановка задачи уточнился и запрос. Он несколько усложнился, однако логика его осталась достаточно прозрачной.
Select lots.ID, zones.Name from lots, zones where lots.Obj Intersects zones.Obj And AreaOverlap(lots.obj,zones.obj)<Area(lots.obj,"sq m") And AreaOverlap(lots.obj,zones.obj)>0 into Selection
Select lots.ID, zones.Name from lots, zones where lots.Obj Intersects zones.Obj And AreaOverlap(lots.obj,zones.obj)<Area(lots.obj,"sq m") And AreaOverlap(lots.obj,zones.obj)>0 into Selection
- Вложения
-
- miHG022.png (11.56 КБ) 11202 просмотра
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Я уже пробовал дополнить Ваш запрос таким условием (только со знаком "<>" - дает тот же результат), но на моём примере он почему-то выбирает участки № 11 и 20. Добавил узлы к зонам на углах участков и 11-й "ушёл" из выборки... Может у запроса требования к точности выше?
- ginpetr
- Завсегдатай
- Сообщения: 385
- Зарегистрирован: 21 июн 2011, 12:07
- Репутация: 140
- Откуда: Орск
- Контактная информация:
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Так и есть, всё дело в точности. Там границы в результате "внутрипрограммных округлений" зашли друг на друга на 2 мм.
-
- Активный участник
- Сообщения: 161
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Нахождение одного ЗУ в нескольких территориальных зонах
Результаты, полученные с использованием ваших данных (рис.1).
Запрос:
Select участки.N, зоны.N from участки, зоны where участки.Obj Intersects зоны.Obj And AreaOverlap(участки.obj,зоны.obj)<Area(участки.obj,"sq m") And AreaOverlap(участки.obj,зоны.obj)>0 into Selection
Для участка 20 можно отметить, что здесь граница зоны пересекает границу участка. Если границы объектов строго совпадают в узлах, такого не будет.
Подредактировал запрос и получил нужный результат (рис.2).
Select участки.N, зоны.N from участки, зоны where участки.Obj Intersects зоны.Obj And AreaOverlap(участки.obj,зоны.obj)<(Area(участки.obj,"sq m")-1) And AreaOverlap(участки.obj,зоны.obj)>0 into Selection
Однако здесь конечно есть некоторый элемент произвола (1 кв.м. точность представления площади в КП). Вероятно, все это имеет связь с точностью представления координат.
Запрос:
Select участки.N, зоны.N from участки, зоны where участки.Obj Intersects зоны.Obj And AreaOverlap(участки.obj,зоны.obj)<Area(участки.obj,"sq m") And AreaOverlap(участки.obj,зоны.obj)>0 into Selection
Для участка 20 можно отметить, что здесь граница зоны пересекает границу участка. Если границы объектов строго совпадают в узлах, такого не будет.
Подредактировал запрос и получил нужный результат (рис.2).
Select участки.N, зоны.N from участки, зоны where участки.Obj Intersects зоны.Obj And AreaOverlap(участки.obj,зоны.obj)<(Area(участки.obj,"sq m")-1) And AreaOverlap(участки.obj,зоны.obj)>0 into Selection
Однако здесь конечно есть некоторый элемент произвола (1 кв.м. точность представления площади в КП). Вероятно, все это имеет связь с точностью представления координат.
- Вложения
-
- рис.2
- miHG027.png (23.88 КБ) 11178 просмотров
-
- рис.1
- miHG026.png (25.07 КБ) 11178 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя