Отображение выборки в карте

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
Mitrich
Сообщения: 6
Зарегистрирован: 21 фев 2024, 11:45

Отображение выборки в карте

Сообщение Mitrich » 29 фев 2024, 08:27

День добрый!

Подскажите пожалуйста, как отобразить выбранные объекты на карте с помощью axipy.
Попробовал код, приведенный, в одном из аналогичных вопросов, но он не работает в новой версии viewtopic.php?f=2&t=432

Заранее спасибо!
Аватара пользователя
Дмитрий
Сообщения: 62
Зарегистрирован: 04 июн 2019, 08:33

Re: Отображение выборки в карте

Сообщение Дмитрий » 29 фев 2024, 10:19

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

Выборка доступна через таблицу, доступную через axipy.data_manager.selection. Если выборка отстутствует, то значение None

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

import axipy
if axipy.data_manager.selection is not None:
    lay = axipy.Layer.create(axipy.data_manager.selection)
    m = axipy.Map([lay])
    axipy.view_manager.create_mapview(m)

Касаемо примера, он от старой версии API и на данный момент не поддерживается.
Аватара пользователя
Mitrich
Сообщения: 6
Зарегистрирован: 21 фев 2024, 11:45

Re: Отображение выборки в карте

Сообщение Mitrich » 29 фев 2024, 11:22

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

Возможно я не правильно сформулировал вопрос, но в МапИнфо я могу программно отобразить
выборку в активном окне карты:
Select * From adres Where Номер = "{CadNumber}" Into Selection
Set Map Window {mapID} ReDraw Off
Add Map Window {mapID} Layer Selection
Set Map Window {mapID} Zoom Entire Layer TableInfo(0, {1})

Я не понимаю как объекты попадают в выборку data_manager.selection

s_query = 'Select * From adres Where Номер = "{CadNumber}" '
query = provider_manager.query(s_query, table)
при этом data_manager.selection пустой
Что необходимо сделать, чтобы объекты попали в data_manager.selection или выборка отобразилась в карте другим символом

Заранее спасибо.
Аватара пользователя
Дмитрий
Сообщения: 62
Зарегистрирован: 04 июн 2019, 08:33

Re: Отображение выборки в карте

Сообщение Дмитрий » 29 фев 2024, 12:01

Для манипуляций с выборкой создан отдельный менеджер выборки axipy.selection_manager. Он позволяет наполнять ее, указывая исходную таблицу и идентификаторы необходимых записей.
Допустим, у нас открыта таблица world и необходимо в выборку добавить все страны, столица которых начинается с буквы 'М'. Это можно сделать с помощью запроса:

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

import axipy
qry = axipy.data_manager.query('select * from world where Столица like "М%"')
for feature in qry.items():
    axipy.selection_manager.add(qry, feature.id)
Аватара пользователя
Mitrich
Сообщения: 6
Зарегистрирован: 21 фев 2024, 11:45

Re: Отображение выборки в карте

Сообщение Mitrich » 29 фев 2024, 13:05

Спасибо огромное, все заработало!
Ответить