Плагины

Вопросы связанные с работой ГИС Аксиома
Аватара пользователя
Александр
Сообщения: 433
Зарегистрирован: 18 апр 2019, 08:21

Re: Плагины

Сообщение Александр » 11 мар 2024, 11:06

Плагин может быть выгружен из Аксиомы при выходе из неё или пользователем при отключении плагина через диалоговое окно "Модули".
При этом Аксиома вызывает метод unload. В методе unload необходимо разместить всю логику, отвечающую за освобождение ресурсов, включая удаление кнопок.

Code: Select all

from axipy import Position, Plugin, tr, ActionButton


class MapTopik1(Plugin):
def __init__(self) -> None:
self._action1: ActionButton = ActionButton(
title=tr("Открыть землю"),
on_click=self.struc_check,
)
position = Position(tr("Основные"), tr("Команды"))
position.add(self._action1)

self._action2: ActionButton = ActionButton(
title=self.tr("классификатор"),
on_click=self.show_message,
tooltip=self.tr("классификатор условных знаков М 1:500,1000,2000,5000")
)
position = Position(tr("Условные знаки"), tr("Минимальный"))
position.add(self._action2)

def unload(self) -> None:
self._action1.remove()
self._action2.remove()

def show_message(self) -> None:
print("message")

def struc_check(self) -> None:
print("открыть землю")
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 11 мар 2024, 15:05

Александр Доброго времени суток!!!
ВСЕ ОТЛИЧНО !!!! Объяснили просто и доступно.
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 14 мар 2024, 14:55

Александр Доброго времени суток !
в письме изложил проблему с выпадающим списком.
Вопрос_11.docx
(43.22 КБ) 26 скачиваний

с интерфейсом заканчиваю .... кажется.
Аватара пользователя
Александр
Сообщения: 433
Зарегистрирован: 18 апр 2019, 08:21

Re: Плагины

Сообщение Александр » 18 мар 2024, 11:52

Пример диалога с комбобоксом
QComboBox.png
QComboBox.png (19.38 КБ) 439 просмотров

Code: Select all

import axipy
from PySide2.QtCore import Qt
from PySide2.QtWidgets import (QComboBox, QVBoxLayout, QDialog)


def show_dialog():
cb_file_type = QComboBox(None)
cb_file_type.addItems(
["MapInfo File", "Bentley MicroStation DGN", "AutoCAD DXF", "GML - Язык географической разметки",
"KML - Язык разметки Keyhole", "Шейп-файл ESRI", "SQLite / Spatialite RDBMS"])

layout = QVBoxLayout()
layout.addWidget(cb_file_type)

dlg = QDialog(axipy.view_manager.global_parent)
dlg.setWindowFlags(dlg.windowFlags() & ~Qt.WindowContextHelpButtonHint) # Выключение значка "?"
dlg.setLayout(layout)

dlg.open()


show_dialog()


Официальная документация QComboBox тут https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QComboBox.html
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 19 мар 2024, 05:53

Доброго времени суток АЛЕКСАНДР!

В ГИС Аксиома реализован принцип конструктора "Лего" - модули это детали "Лего".
Можно собирать из базовых /приватных модулей пользовательские технологии обработки данных.
Осталось только дать возможность пользователю создавать свой каталог технологий.

Модули можно разделить на базовые и дополнительные.
Востребованные дополнительные модули, сторонних разработчиков , нужно тестировать и включать в
базовый каталог модулей ГИС Аксиома.

В целом в ГИС Аксиома за ,что ни хватишься все уже есть , все работает! МОЛОДЦЫ !!!.

Я Благодарю Вас Александр за терпение и оказанную Вами помощь в освоении Python API в среде ГИС Аксиома.
Вы правы абсолютно , знание Python необходимо для работы с Python API в среде ГИС Аксиома.

Только благодаря Вашей помощи мне удалось сформировать свой интерфейс.

P.S. К Вам обращаюсь в самом крайнем случае.
Аватара пользователя
Александр
Сообщения: 433
Зарегистрирован: 18 апр 2019, 08:21

Re: Плагины

Сообщение Александр » 19 мар 2024, 08:08

Благодарю Вас за положительный отзыв о ГИС Аксиома и за доверие к нашей системе. Мы ценим вашу благодарность за помощь в освоении Python API и всегда готовы помочь вам при необходимости.

Вы правы, принцип "Лего", озвученный вами, позволяет пользователям создавать свои собственные технологии обработки данных. Пользователи могут публиковать свои модули на форуме, и при достаточной зрелости модуля мы включаем его в наш репозиторий. В дальнейшем некоторые популярные модули могут распространяться совместно с Аксиомой.
В следующей версии API будет добавлена возможность управления установленными модулями, что позволит, в том числе, создавать пользовательские репозитории.

Немаловажным фактором является возможность защитить модуль от несанкционированного доступа для возможности монетизации. Мы прорабатываем такую возможность, и в данный момент эта технология находится на стадии тестирования.
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 22 мар 2024, 06:20

Вопрос ко всем кто может ответить...

Открываем средствами ГИС Аксиома несколько таблиц в активном окне. Одну из таблиц
делаем редактируемой.

Вопрос:
- "Каким образом извлекаем имя редактируемой таблицы в активном окне ?"

P.S. Смог только отследить наличие редактируемой таблицы в окне.
Александр извините , но в перекрестных ссылках руководства разработчика , увяз как пчела (или как ос) в паутине.
Аватара пользователя
Андрей
Сообщения: 16
Зарегистрирован: 01 окт 2020, 08:40

Re: Плагины

Сообщение Андрей » 22 мар 2024, 12:39

Здравствуйте. Пример получения имени редактируемой таблицы в активном окне:

Code: Select all

import axipy

# Получение активного окна карты
active_map_view = axipy.view_manager.active
# Получение редактируемого слоя активного окна карты
editable_layer = active_map_view.editable_layer
# Получение таблицы редактируемого слоя
table = editable_layer.data_object
# Получение имени таблицы редактируемого слоя
name = table.name

Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 22 мар 2024, 14:42

Андрей ! Добрый вечер!

Андрей , Благодарю Вас за помощь. К изучению Python и Python API только приступил и к логике Python
еще не привык. Учусь только на ответах модератора Александра и братьев Форумчан ,в том числе и Вашего ответа.
Добавил Ваш фрагмент и конечно все получилось . Сейчас разбираюсь , а почему получилось....
Аватара пользователя
Матвеич
Сообщения: 79
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 28 мар 2024, 06:23

Есть открытая средствами Аксиома таблица.

Необходимо добавить новые атрибуты :
- Код Integer
- sem Char (100)
- h Decimal(10,3)

Т.е. изменить структуру существующей таблицы ...
Ответить