Страница 1 из 1

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

Добавлено: 02 апр 2019, 15:03
RobWork
Работаю в 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

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

Добавлено: 02 апр 2019, 22:01
MYS
Попробуйте использовать 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