Здравствуйте.
Стоит задача сделать запрос по двум слоям, в случае пересечения слоев, вывести площадь пересечения.
В MI это делалось с помощью запроса:
Fields {Слой1.колонка1, Слой1.колонка2, Слой2.колонка1, Слой2.колонка2, area(overlaps(Слой1.obj, Слой2.obj), "sq m")}
Tables {Слой1, Слой2}
Where {(Слой1.obj Intersects Слой2.obj ) and (Слой1.Колонка1 <> Слой2.Колонка2 ) }
Group {}
Order {}
Into {}
В Аксиоме в результате запроса колонка площадей пересечения остается пустой.
Подскажите пожалуйста как в Аксиоме реализована данная возможность?
Вычисление площадей пересечения
Re: Вычисление площадей пересечения
Cправка по overlaps расширенного диалекта SQL
Кроме того, эта функция работает с типом геометрии SL_GEO.
Аксиома работает с различными типами геометрии и для некоторых функции, при работе с геометрией TAB (GEO), требуется приведение к геометрии SL_GEO
Это можно сделать с помощью функции FromAxiGeo(). Чтобы наоборот, преобразовать геометрию SL_GEO к типу TAB нужно вызвать ToAxiGeo()
Функция, которая возвращает само пересечение двух объектов Intersections тут две таблицы с пересекающимися объектами:
следующий запрос: строит таблицу с пересекающимися областями и вычисляет их площадь:
Результат запроса:
Эта функция возвращает логическое значение накладываются ли два объекта.Кроме того, эта функция работает с типом геометрии SL_GEO.
Аксиома работает с различными типами геометрии и для некоторых функции, при работе с геометрией TAB (GEO), требуется приведение к геометрии SL_GEO
Это можно сделать с помощью функции FromAxiGeo(). Чтобы наоборот, преобразовать геометрию SL_GEO к типу TAB нужно вызвать ToAxiGeo()
Функция, которая возвращает само пересечение двух объектов Intersections тут две таблицы с пересекающимися объектами:
следующий запрос: строит таблицу с пересекающимися областями и вычисляет их площадь:
Результат запроса:
Re: Вычисление площадей пересечения
Добавлено Администратором:
Предыдущее сообщение было удалено автором.
Ответ остался к удалённому сообщению
По шести цифрам сложно что-то сказать.
Данные Вы не приложили, запросы не привели.
Так что буду предполагать.
Вероятнее всего измерения проводились в долготе/широте. Вероятно речь о площади почти 70 тыс. кв. км.
В этом случае, точность измерения площади низкая и MapInfo вычисляет её на сфере. При этом заметно округляя результаты. Аксиома вычисляет точнее.
Предыдущее сообщение было удалено автором.
Ответ остался к удалённому сообщению
По шести цифрам сложно что-то сказать.
Данные Вы не приложили, запросы не привели.
Так что буду предполагать.
Вероятнее всего измерения проводились в долготе/широте. Вероятно речь о площади почти 70 тыс. кв. км.
В этом случае, точность измерения площади низкая и MapInfo вычисляет её на сфере. При этом заметно округляя результаты. Аксиома вычисляет точнее.