Ошибка работы функции DataObjects.class_geometries()

Ошибки при работе с ГИС Аксиома
Ответить
Аватара пользователя
Mitrich1
Пользователь
Сообщения: 1
Зарегистрирован: 24 окт 2025, 10:03

Ошибка работы функции DataObjects.class_geometries()

Сообщение Mitrich1 » 24 окт 2025, 10:11

Здравствуйте, уважаемые разработчики!

Прошу проверить работоспособность кода выполняемого в окне Python ГИС Аксиома, запущенного под Astra Linux.
>>> if isinstance(axipy.view_manager.active, axipy.MapView):
view = axipy.view_manager.active
for layer in view.map.layers:
if isinstance(layer.data_object, axipy.Table):
print(layer.title, layer.data_object.name)
print(layer.data_object.class_geometries())

Под Windows для карты содержащей 2 слоя (PublicTransportObj , AirTransportObj ) данная функция возвращает данные:
PublicTransportObj PublicTransportObj
[<GeometryClass.Polygons: 3>, <GeometryClass.Lines: 2>, <GeometryClass.Points: 1>]
AirTransportObj AirTransportObj
[<GeometryClass.Polygons: 3>, <GeometryClass.Lines: 2>, <GeometryClass.Points: 1>]

Под Astra Linux
PublicTransportObj PublicTransportObj
[]
AirTransportObj AirTransportObj
[]

Проблема выявлена для ГИС Аксиома 6.2-7.1
Аватара пользователя
Дмитрий
Администратор
Сообщения: 107
Зарегистрирован: 04 июн 2019, 11:33

Re: Ошибка работы функции DataObjects.class_geometries()

Сообщение Дмитрий » 24 окт 2025, 11:49

Здравствуйте!

Мы проверили на наших тестовых стендах (AstraLinux 1.7.6 и AstraLinux 1.8.2). При наличие разнородных данных в таблице возвращается перечень типов, а не пустой список.
Просим уточнить на каких данных наблюдаются подобные проблемы.
Вложения
doc_2025-10-24_11-47-59.png
doc_2025-10-24_11-47-51.png
astra_test.py
(230 байт) 47 скачиваний
Аватара пользователя
Mitrich
Пользователь
Сообщения: 58
Зарегистрирован: 21 фев 2024, 14:45

Re: Ошибка работы функции DataObjects.class_geometries()

Сообщение Mitrich » 24 окт 2025, 19:24

Данные загружены из базы данных me sql server и открыты с использованием связанной таблицы.
Аватара пользователя
Mitrich
Пользователь
Сообщения: 58
Зарегистрирован: 21 фев 2024, 14:45

Re: Ошибка работы функции DataObjects.class_geometries()

Сообщение Mitrich » 27 окт 2025, 09:21

День добрый!
Вечером в пятницу ошибся по поводу типа загруженных данных.
Не отображаются типы геометрии таблиц, загруженных из базы данных MS SQL SERVER напрямую.

>> axipy.execfile('/mnt/..../astra_test.py')
CustomControl CustomControl
[]
PublicTransportObj PublicTransportObj
[]
genplan_AutoService genplan_AutoService
[<GeometryClass.Polygons: 3>, <GeometryClass.Lines: 2>, <GeometryClass.Points: 1>]


Где таблицы CustomControl, PublicTransportObj загружены напрямую из базы данных, genplan_AutoService - с созданием связанной таблицы
Аватара пользователя
Дмитрий
Администратор
Сообщения: 107
Зарегистрирован: 04 июн 2019, 11:33

Re: Ошибка работы функции DataObjects.class_geometries()

Сообщение Дмитрий » 27 окт 2025, 13:47

Здравствуйте!

Такое поведение может возникать в следующих случаях:
* Таблица пуста и не содержит данных;
* Используется SQL-запрос, который может нарушать ожидаемую структуру выборки;
* В таблице присутствует геометрия, тип которой не поддерживается.

Пожалуйста, проверьте наличие данных в таблице, корректность SQL-запроса и тип геометрии объектов.
Если потребуется помощь, пожалуйста, пришлите нам пример запроса и структуру таблицы.
Аватара пользователя
Mitrich
Пользователь
Сообщения: 58
Зарегистрирован: 21 фев 2024, 14:45

Re: Ошибка работы функции DataObjects.class_geometries()

Сообщение Mitrich » 29 окт 2025, 14:16

День добрый, уважаемые разработчики!

Поясните пожалуйста, что означает:
* Используется SQL-запрос, который может нарушать ожидаемую структуру выборки;
* В таблице присутствует геометрия, тип которой не поддерживается.

Данные в указанных таблицах присутствуют - тип данных - точечные объекты.
Что может нарушать ожидаемую структуру выборки, если данные загружены средствами ГИС Аксиомы?
У нас приобретены лицензии на ГИС Аксиома в количестве более 20 штук.

Может быть Вы посмотрите в коде, что у Вас не так определяется?

Рекомендую так же посмотреть на то, как Вы забываете закрыть курсор в базе данных MS SQL Server, если пользователь открывает с диска связанную с базой данных таблицу средствами ГИС Аксиома.
Аватара пользователя
Дмитрий
Администратор
Сообщения: 107
Зарегистрирован: 04 июн 2019, 11:33

Re: Ошибка работы функции DataObjects.class_geometries()

Сообщение Дмитрий » 29 окт 2025, 15:11

Функция DataObjects.class_geometries() может не возвращать ожидаемые типы геометрии в следующих случаях:
• таблица пуста и не содержит данных;
• используется SQL-запрос, изменяющий или нарушающий структуру выборки (например, с агрегатными функциями, подзапросами или переименованием колонок);
• в таблице присутствует геометрия, тип которой не поддерживается текущей версией системы.
Вы указали, что данные в таблицах присутствуют и имеют точечный тип. Тем не менее, для точной диагностики проблемы нам необходимы дополнительные сведения: пожалуйста, пришлите пример SQL-запроса (если он использовался) и структуру таблицы (включая типы полей).

Также напоминаем, что в целях эффективного взаимодействия и поддержания профессиональной атмосферы на форуме мы просим формулировать обращения уважительно и конструктивно. Это помогает нам быстрее находить решения и поддерживать высокий уровень поддержки для всех пользователей.
Ответить