Инициализация

API может быть использован следующими способами:

  • в приложении ГИС «Аксиома» из панели «Консоль Python»;

  • в модуле, который будет загружен в ГИС «Аксиома»;

  • как SDK - Software development kit, независимо от приложения Аксиома.ГИС.

Примечание

Для использования API в качестве SDK требуется платная лицензия.

В первых двух случаях можно сразу приступать к работе, так как API будет инициализировано за вас. В последнем случае перед началом использования его необходимо самостоятельно инициализировать. Если забыть это сделать, то при попытке использования будет вызвано исключение, которое напомнит выполнить инициализацию.

Например:

from axipy.cs import CoordSystem


try:
    crs = CoordSystem.from_epsg(4326)
except RuntimeError as error:
    print(f"Поймано исключение: {error}")
>>> Поймано исключение: axipy is not initialized

Для инициализации API следует вызвать метод axipy.init_axioma():

from axipy import init_axioma
init_axioma()  # инициализация

from axipy.cs import CoordSystem
crs = CoordSystem.from_epsg(4326)
print(crs.name)
>>> 'Долгота / Широта (WGS 84)'

Допускается (но не рекомендуется) импортировать сразу все классы и функции, чтобы упростить процедуру импорта.

from axipy import *  # импортируем все типы ГИС "Аксиома"
                     # в текущее пространство имен

crs = CoordSystem.from_epsg(4088)
print(crs.name)
>>> 'World Equidistant Cylindrical (Sphere)'

Приведем пример простейшего приложения, где открывается файл с данными и далее карта показывается в окне просмотра. Пример запускается не из под ГИС Аксиома.

import axipy

# Инициализируем ядро
app = axipy.init_axioma()
# Открываем таблицу
table_world = axipy.provider_manager.openfile('world.tab')
# Добавляем ее в каталог
axipy.data_manager.add(table_world)
# Создаем слой
layer_world = axipy.Layer.create(table_world)
# Создаем карту и показываем ее в окне
map_world = axipy.Map([ layer_world ])
mapview = axipy.view_manager.create_mapview(map_world)
# Изменяем размер окна
mapview.position = axipy.Rect(10, 10, 500, 500)
# показываем
mapview.show()
app.exec_()

Если эту же задачу необходимо выполнить в рамках запущенной Аксиомы, код будет выглядеть следующим образом:

import axipy

table_world = axipy.provider_manager.openfile('world.tab')
layer_world = axipy.Layer.create(table_world)
map_world = axipy.Map([ layer_world ])
mapview = axipy.view_manager.create_mapview(map_world)
mapview.position = axipy.Rect(10, 10, 500, 500)

Системные переменные

Системные переменные, если это требуется, необходимо устанавливать до проведения инициализации ядра.

AXIOMA_LOG_LEVEL

Системная переменная AXIOMA_LOG_LEVEL управляет уровнем логирования в системе. Допустимый диапазон значений (0…3) в сторону уменьшения количества выводимой информации. По умолчанию устанавливается средний уровень - «2». Если установить значение «-1», то логирование будет отключено.

AXIOMA_LANGUAGE

Системная переменная AXIOMA_LANGUAGE устанавливает язык интерфейса. Допустимые значения «ru» и «en».

from axipy import init_axioma
import os

os.environ["AXIOMA_LOG_LEVEL"] = "1"
os.environ["AXIOMA_LANGUAGE"] = "en"
init_axioma()  # инициализация

Системные службы

При работе для более удобного доступа к функциям созданы готовые экземпляры (менеджеры). Перечислим их.

Доступные менеджеры.

Объект

Класс объекта

Описание

axipy.da.data_manager

axipy.da.DataManager

Хранилище объектов данных

axipy.gui.view_manager

axipy.gui.ViewManager

Менеджер содержимого окон

axipy.da.provider_manager

axipy.da.ProviderManager

Открытия/создания объектов данных

axipy.gui.selection_manager

axipy.gui.SelectionManager

Доступ к выделенным объектам

axipy.concurrent.task_manager

axipy.concurrent.TaskManager

Менеджер, запускающий пользовательские задачи

axipy.gui.active_tool_panel

axipy.gui.ActiveToolPanel

Панель активного инструмента