Страница 1 из 1
Запрос SQL
Добавлено: 20 фев 2024, 06:18
Matveev
Здравствуйте, подскажите пожалуйста, какую необходимо прописать функцию, чтобы считалась площадь перекрытия одним объектом другого?
Re: Запрос SQL
Добавлено: 20 фев 2024, 07:26
LiSa
Здравствуйте! Уточните, пожалуйста, у Вас 2 полигональные таблицы? Есть объекты, которые накладываются друг на друга. Есть объекты, которые друг на друга на накладываются. Нужно, используя графический оператор, выявить наложение (содержание) и посчитать площадь.
Re: Запрос SQL
Добавлено: 21 фев 2024, 01:30
Matveev
Да, у меня две таблицы, содержащие графику, нужно узнать площадь наложения одного на другой.
Re: Запрос SQL
Добавлено: 21 фев 2024, 11:53
Александр
В примере:
две таблицы (one и two), объекты которых накладываются
- map.png (91.12 КБ) 924 просмотра
Чтобы посчитать площадь перекрытия с помощью 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
В интерфейсе это выглядит так:
- sql.png (50.03 КБ) 924 просмотра
Поясню:
- Функция FromAxiGeo используется для преобразования геометрии из формата Аксиомы в формат SpatiaLite. На вход функции передается геометрический объект Аксиомы.
- Функция Intersection возвращает геометрический объект, являющийся пересечением двух объектов. Функция работает с форматом геометрии SpatiaLite, поэтому требуется перевод геометрии с помощью FromAxiGeo.
- Функция Area вычисляет площадь геометрического объекта.
- Функция SUM суммирует данные.
- Оператор Intersects возвращает true, если объекты пересекаются.
Данное SQL-выражение сначала находит пересечение геометрических объектов One.obj и Two.obj с помощью функции Intersection и FromAxiGeo. Затем вычисляет площадь этого пересечения в квадратных метрах с помощью функции Area. После этого суммирует все полученные площади пересечений с помощью функции SUM и выводит итоговую сумму в столбце area.
Re: Запрос SQL
Добавлено: 27 фев 2024, 00:18
Matveev
Здравствуйте! Перепробовал все... Нужный результат так и не получил.... Пример, как было в МапИнфо:
Re: Запрос SQL
Добавлено: 27 фев 2024, 12:03
Александр
Если я правильно понимаю, то приблизительно так.
- sql1.png (46.83 КБ) 830 просмотров
Re: Запрос SQL
Добавлено: 29 фев 2024, 02:28
Matveev
Спасибо большое, получилось!)