Страница 1 из 1

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

Добавлено: 29 фев 2024, 08:27
Mitrich
День добрый!

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

Заранее спасибо!

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 и на данный момент не поддерживается.

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

Добавлено: 29 фев 2024, 11:22
Mitrich
Здравствуйте!

Возможно я не правильно сформулировал вопрос, но в МапИнфо я могу программно отобразить
выборку в активном окне карты:
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 или выборка отобразилась в карте другим символом

Заранее спасибо.

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)

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

Добавлено: 29 фев 2024, 13:05
Mitrich
Спасибо огромное, все заработало!