Инициализация¶
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() # инициализация
Системные службы¶
При работе для более удобного доступа к функциям созданы готовые экземпляры (менеджеры). Перечислим их.
Объект |
Класс объекта |
Описание |
---|---|---|
Хранилище объектов данных |
||
Менеджер содержимого окон |
||
Открытия/создания объектов данных |
||
Доступ к выделенным объектам |
||
Менеджер, запускающий пользовательские задачи |
||
|
Панель активного инструмента |