Как програмно выбрать (layer.set_select()) слой на карте?

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
Михаил_К
Пользователь
Сообщения: 3
Зарегистрирован: 01 ноя 2024, 16:42

Как програмно выбрать (layer.set_select()) слой на карте?

Сообщение Михаил_К » 01 ноя 2024, 17:00

Добрый день!

Разобрался как можно, программно центрировать и увеличивать на карте выбранный слой (через MapView.show_selection())
Соответственно должна быть возможность программно выбрать ( layer.set_select() ) нужный слой. Но никак не могу разобраться как же (через какой объект), это можно сделать?
Не могу найти, ни в справке, не в каком нибудь примере.

Подскажите пожалуйста, через что это можно сделать?
Аватара пользователя
Дмитрий
Администратор
Сообщения: 100
Зарегистрирован: 04 июн 2019, 11:33

Re: Как програмно выбрать (layer.set_select()) слой на карте?

Сообщение Дмитрий » 05 ноя 2024, 18:45

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

Для того, чтобы выбрать слой, необходимо в менеджер выборки добавить требуемые объекты. Например, из запроса:

Код: Выделить всё

import axipy

qry = axipy.data_manager.query('select * from world where Столица like "М%"')
for feature in qry.items():
    axipy.selection_manager.add(qry, feature.id)
Аватара пользователя
Михаил_К
Пользователь
Сообщения: 3
Зарегистрирован: 01 ноя 2024, 16:42

Re: Как програмно выбрать (layer.set_select()) слой на карте?

Сообщение Михаил_К » 07 ноя 2024, 17:33

Спасибо, но мне нужно немного другое.
У меня уже есть в окне "Управление слоями" - несколько слоев (уже добавленных)
Мне нужно один из них сделать выделенным, через интерфейс это делается через подменю "Выбрать все".
Изображение
Вопрос как это сделать программно ???
Вложения
select_all.png
select_all.png (49.52 КБ) 6750 просмотров
Аватара пользователя
Дмитрий
Администратор
Сообщения: 100
Зарегистрирован: 04 июн 2019, 11:33

Re: Как програмно выбрать (layer.set_select()) слой на карте?

Сообщение Дмитрий » 10 ноя 2024, 21:24

Если необходимо выбрать все объекты на слое, то можно сделать так:

Код: Выделить всё

table = axipy.data_manager.find('world')
if table:
    axipy.selection_manager.set(table, [f.id for f in table.items()])
Ответить