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

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

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

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

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

Примечание

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

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

Например:

from axipy 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, CoordSystem, AxiomaInitLogLevel

# Инициализация ядра
init_axioma(log_level=AxiomaInitLogLevel.disabled)

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

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

from axipy import init_axioma, provider_manager, Layer, Map, view_manager, Rect, AxiomaInitLogLevel, open_file_dialog

# Ввод пути к открываемому файлу в консоли
path_to_file = open_file_dialog("MapInfo Tab (*.tab)")
# Инициализация ядра
app = init_axioma(log_level=AxiomaInitLogLevel.disabled)
# Открытие файла
data_object = provider_manager.openfile(str(path_to_file))
# Создание слоя
layer = Layer.create(data_object)
# Создание карты
map_ = Map([layer])
# Создание окна карты
map_view = view_manager.create_mapview(map_)
# Изменение размера окна
map_view.position = Rect(10, 10, 500, 500)
# Показать окно
map_view.show()
# Запуск основного цикла программы
app.exec_()

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

from axipy import provider_manager, Layer, Map, view_manager, Rect, open_file_dialog

# Открытие диалога выбора файла
path_to_file = open_file_dialog("MapInfo Tab (*.tab)")
# Открытие файла
data_object = provider_manager.openfile(str(path_to_file))
# Создание слоя
layer = Layer.create(data_object)
# Создание карты
map_ = Map([layer])
# Создание окна карты
map_view = view_manager.create_mapview(map_)
# Изменение размера окна
map_view.position = Rect(10, 10, 500, 500)