Плагины
Re: Плагины
Александр, я не нашел тригонометрических функций в API Python , подскажите пожалуйста где они находятся
Re: Плагины
Они находятся в стандартной библиотеке Python в модуле math
Re: Плагины
Следовательно - знание питона необходимо. Охоньки хо хо Где мои 40 лет
Re: Плагины
Уважаемый Александр! Доброго дня.
На Вас уповаю
Запускаем програмку MapTopik
C:\Аксиома\Axi_Topik\pythonProject\MapTopik.py
****************************************************
from axipy import Position, ActionButton
from axipy import init_axioma, mainwindow
from axipy import tr
# Инициализация ядра
app = init_axioma()
# Пункты меню MapTopik
# 1
button = ActionButton("Открыть землю", on_click=lambda: print("запустить мою процедуру открытия таблица земля") ,
tooltip="открыть рабочую таблицу MapTopik земля.tab")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# 2
button = ActionButton("Проверка структуры редактируемой таблицы", on_click=lambda: print("trig_2"),
tooltip="соответствие структуры *.Tab стандарту MapTopik")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# классификатор условных знаков
# 3
button = ActionButton("Классификатор условных знаков", on_click=lambda: print("trig_3"),
tooltip="вызов классификатора точечных, линейных, площадных, текстовых условных знаков ")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# 4
button = ActionButton("Точечный условный знак", icon="C:\\Аксиома\\Axi_Topik\\pythonProject\\images\\16px\\voronoi.png",
on_click=lambda: print("trig_4"), tooltip="создание точечного условного знака")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# Создание и отображение главного окна Аксиомы
mainwindow.show()
# Запуск основного цикла приложения
app.exec_()
***********************************************
Как правильно организовать запуск процедуры OpenEarth.py из моей папки C:\Аксиома\Axi_Topik\pythonProject\buttons при выборе пункта меню “Открыть землю”.
Или при нажатии иконки на пользовательской панели инструментов
На Вас уповаю
Запускаем програмку MapTopik
C:\Аксиома\Axi_Topik\pythonProject\MapTopik.py
****************************************************
from axipy import Position, ActionButton
from axipy import init_axioma, mainwindow
from axipy import tr
# Инициализация ядра
app = init_axioma()
# Пункты меню MapTopik
# 1
button = ActionButton("Открыть землю", on_click=lambda: print("запустить мою процедуру открытия таблица земля") ,
tooltip="открыть рабочую таблицу MapTopik земля.tab")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# 2
button = ActionButton("Проверка структуры редактируемой таблицы", on_click=lambda: print("trig_2"),
tooltip="соответствие структуры *.Tab стандарту MapTopik")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# классификатор условных знаков
# 3
button = ActionButton("Классификатор условных знаков", on_click=lambda: print("trig_3"),
tooltip="вызов классификатора точечных, линейных, площадных, текстовых условных знаков ")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# 4
button = ActionButton("Точечный условный знак", icon="C:\\Аксиома\\Axi_Topik\\pythonProject\\images\\16px\\voronoi.png",
on_click=lambda: print("trig_4"), tooltip="создание точечного условного знака")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
# Создание и отображение главного окна Аксиомы
mainwindow.show()
# Запуск основного цикла приложения
app.exec_()
***********************************************
Как правильно организовать запуск процедуры OpenEarth.py из моей папки C:\Аксиома\Axi_Topik\pythonProject\buttons при выборе пункта меню “Открыть землю”.
Или при нажатии иконки на пользовательской панели инструментов
Re: Плагины
Если создать файл OpenEarth.py рядом с файлом MapTopik.py
то запустить функцию test по нажатию на кнопку "Открыть землю" можно так:
Если файл OpenEarth.py в подпапке buttons, то импорт слегка поменяется:
Код: Выделить всё
def test():
print('test')
Код: Выделить всё
from OpenEarth import test
........................
button = ActionButton("Открыть землю", on_click=test,
tooltip="открыть рабочую таблицу MapTopik земля.tab")
position = Position(tr("Основные"), tr("Команды"))
position.add(button)
...............
Код: Выделить всё
from buttons.OpenEarth import test
Re: Плагины
Милостивый Государь АЛЕКСАНДР !!! Примите мои уверения в совершеннейшем к Вам почтении!!!! Кричу как кот Матроскин -"УРА ЗАРАБОТАЛО !!!"
Re: Плагины
модуль Cr_point.py (пункт меню - точечный условный знак )
открываем таблицу в окне , слой редактируемый и выбираем пункт меню : "точечный условный знак"
в консоли пишет :
построение точки
Точка (1000.0, 1000.0)
но в окне не создает точку
from axipy import (CoordSystem, Point, Rect, Unit)
def Cr_p():
print('построение точки')
cs = CoordSystem.from_units(Unit.m, Rect(0, 0, 1000000, 1000000))
point = Point(1000, 1000, cs)
print('Точка ({}, {})'.format(point.x, point.y))
'''
>>> Точка (1000, 1000)
'''
открываем таблицу в окне , слой редактируемый и выбираем пункт меню : "точечный условный знак"
в консоли пишет :
построение точки
Точка (1000.0, 1000.0)
но в окне не создает точку
from axipy import (CoordSystem, Point, Rect, Unit)
def Cr_p():
print('построение точки')
cs = CoordSystem.from_units(Unit.m, Rect(0, 0, 1000000, 1000000))
point = Point(1000, 1000, cs)
print('Точка ({}, {})'.format(point.x, point.y))
'''
>>> Точка (1000, 1000)
'''
Re: Плагины
Где можно почитать о создании графических объектов (точка, линия , полилиния, регион)
и посмотреть хотя бы рабочие примитивные тексты модулей (запустил и работает)
и посмотреть хотя бы рабочие примитивные тексты модулей (запустил и работает)
Re: Плагины
Чтобы точка появилась на карте, её нужно добавить в таблицу, например на косметический слой карты.
Код: Выделить всё
import axipy
def put_point():
win = axipy.view_manager.active # Получаем активное окно
if not isinstance(win, axipy.MapView): # Активное окно - окно карты
print("Сделайте активным окно карты")
return
cs = axipy.CoordSystem.from_units(axipy.Unit.m, axipy.Rect(0, 0, 1000000, 1000000))
point = axipy.Point(1000, 1000, cs)
table = win.map.cosmetic.data_object # Данные косметического слоя
# Создадим запись для вставки в таблицу
feature = axipy.Feature(geometry=point, style=axipy.PointStyle.create_mi_compat(35, 0))
table.insert(feature) # Вставляем запись в таблицу
print("OK")
put_point()
тут: https://axioma-gis.ru/axipy/dev-guide/5.1/user_guide/geometry.html
Примеры есть в Модулях, на вкладке Основные - Настройки - Модули. Нужно нажать галку "Показать примеры".и посмотреть хотя бы рабочие примитивные тексты модулей (запустил и работает)
Чтобы посмотреть расположение примера его нужно выбрать и нажать на кнопку Показать в правой части диалога.
Re: Плагины
Александр !
Благодарю Вас ! Толковый, точный с пояснениями работоспособный ответ !!! Хоть что-то начинаю понимать.
Переход от MapBasic к Python API трудный процесс.
Жаль , что в руководстве разработчика , нет подобных примеров с описанием работы . (Скопировал, запустил - работает)
Александр ! Примите мои уверения в совершеннейшем к Вам почтении.
Благодарю Вас ! Толковый, точный с пояснениями работоспособный ответ !!! Хоть что-то начинаю понимать.
Переход от MapBasic к Python API трудный процесс.
Жаль , что в руководстве разработчика , нет подобных примеров с описанием работы . (Скопировал, запустил - работает)
Александр ! Примите мои уверения в совершеннейшем к Вам почтении.