Запрос SQL
Запрос SQL
Здравствуйте, подскажите пожалуйста, какую необходимо прописать функцию, чтобы считалась площадь перекрытия одним объектом другого?
Re: Запрос SQL
Здравствуйте! Уточните, пожалуйста, у Вас 2 полигональные таблицы? Есть объекты, которые накладываются друг на друга. Есть объекты, которые друг на друга на накладываются. Нужно, используя графический оператор, выявить наложение (содержание) и посчитать площадь.
Re: Запрос SQL
Да, у меня две таблицы, содержащие графику, нужно узнать площадь наложения одного на другой.
Re: Запрос SQL
В примере:
В интерфейсе это выглядит так:
Поясню:
две таблицы (one и two), объекты которых накладываются
Чтобы посчитать площадь перекрытия с помощью SQL, требуется выполнить следующее SQL-выражение:
Code: Select all
SELECT SUM(Area(Intersection(FromAxiGeo(One.obj), FromAxiGeo(Two.obj)), 'sq m')) as area FROM One,Two WHERE One.obj Intersects Two.obj
- Функция FromAxiGeo используется для преобразования геометрии из формата Аксиомы в формат SpatiaLite. На вход функции передается геометрический объект Аксиомы.
- Функция Intersection возвращает геометрический объект, являющийся пересечением двух объектов. Функция работает с форматом геометрии SpatiaLite, поэтому требуется перевод геометрии с помощью FromAxiGeo.
- Функция Area вычисляет площадь геометрического объекта.
- Функция SUM суммирует данные.
- Оператор Intersects возвращает true, если объекты пересекаются.
Re: Запрос SQL
Здравствуйте! Перепробовал все... Нужный результат так и не получил.... Пример, как было в МапИнфо:
- Вложения
-
- так было в МапИнфо, выдавал площади общие, из таблицы Для слияния, и площади пересечения объектов из таблицы Для слияния с таблицей soil map
- запрос пример.jpeg (199.39 КБ) 3514 просмотров
Re: Запрос SQL
Если я правильно понимаю, то приблизительно так.
Re: Запрос SQL
Спасибо большое, получилось!)