MapInfo Пересечение объектов

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
RobWork
Новоприбывший
Сообщения: 2
Зарегистрирован: 02 апр 2019, 14:45
Репутация: 0
Откуда: Москва

MapInfo Пересечение объектов

Сообщение RobWork » 02 апр 2019, 15:03

Работаю в MapInfo. У меня есть две карты (допустим, Карта1 и Карта2), каждая из которых состоит из полигонов (объектов). Как найти площадь пересечения каждого объекта Карты1 с каждым объектом Карты2?
Для решения данного вопроса я попытался воспользоваться следующим SQL-запросом:
SELECT sum(AreaOverlap(Карта1.obj, Карта2.obj))
WHERE Карта1.obj Contains Part Карта2.obj

Казалось бы, вопрос решен. Но нет: в ответе получается слишком маленькая площадь пересечения 124030,38. Хотя у Карт площадь по 8 миллионов каждая и они графически явно пересекаются во многих местах.
В чем ошибка в моем запросе? Я действительно не понимаю механику функции или как объекты взаимодействуют между собой при сравнении.
Прилагаю скриншоты запроса, Карты1, Карты2
Вложения
3.jpg
3.jpg (69.97 КБ) 2501 просмотр
2.jpg
2.jpg (65.28 КБ) 2501 просмотр
3.jpg
Карта2
3.jpg (69.97 КБ) 2501 просмотр
2.jpg
Карта1
2.jpg (65.28 КБ) 2501 просмотр

MYS
Интересующийся
Сообщения: 42
Зарегистрирован: 02 ноя 2011, 09:11
Репутация: 23

Re: MapInfo Пересечение объектов

Сообщение MYS » 02 апр 2019, 22:01

Попробуйте использовать Intersects вместо Contains Part и группировку по идентификаторам объектов (предположим, Карта1.ID и Карта2.ID). Ну, и единицы площади указать.

Что-то типа такого:

SELECT sum(Area(Overlap(Карта1.obj, Карта2.obj), "sq km"), Карта1.ID, Карта2.ID
from Карта1, Карта2
WHERE Карта1.obj Intersects Карта2.obj
Group by Карта1.ID, Карта2.ID
into selection

Ответить

Вернуться в «Я новичок!»

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

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