Данный модуль является модулем ядра. Модуль состоит из подмодулей.
core.
open_json
(json)¶Открыть объект данных по описанию в формате JSON
Параметры: | json ( |
---|---|
Результат: | открытый объект данных |
Тип результата: | |
Исключение: |
|
Формат описания объектов данных индивидуален для каждого провайдера данных, однако многие элементы используются для всех провайдеров данных
Общие для всех элементы:
openWith
- текстовый идентификаторе, который определяет, каким провайдером требуется открыть объект данных. Если этот элемент не задан, то будет произведена попытка автоматического подбора провайдера данныхaccessMode
- если установлено значениеr
илиro
, то объект данных будет открыт только на чтение; если установлено значениеrw
, то объект данных будет открыт на чтение и запись. Если этот элемент не задан, то поведение программы определяется провайдеромsrc
- строка, определяющая источник данных (см. далее). Требуется для всех провайдеровobj
- строка, определяющая объект данных. Может отсутствовать.prj
- строка в формате PRJ, определяющая координатную систему для пространственных объектов данных. В случае отсутствия поведение программы определяется провайдером.charset
- строка, задающая кодировку символов для объекта данных.
Для файловых провайдеров:
src
- путь к файлу, который требуется открыть
Для СУБД:
src
- доменное имя или IP-адрес сервераport
- номер порта для подключенияdb
- имя базы данных на сервереuser
- имя пользователя для подключенияpass
- пароль для подключенияobj
- имя таблицы в базе данных
Для файлов в формате CSV:
src
- имя файлаhasNamesRow
- еслиtrue
, то провайдер ожидает, что в первой строке CSV-файла будут записаны имена столбцов таблицы; еслиfalse
, то провайдер ожидает, что в первой строке CSV-файла будет записана первая строка данныхdelimiter
- какой символ используется в качестве разделителя полей. По умолчанию используется запятая
Для растров
bindingPoints
- в этом элементе можно задать привязку (см. пример использования)
- элемент
world
задает координаты точки в координатной системе карты- элемент
layer
задает координаты точки в координатной системе растра- элемент
description
не является обязательным и используется для записи текстового описания для точки
prj
- строка в формате PRJ, определяющая координатную системуПример использования:¶import axioma.core json = { "src": "~/test-data/images/TrueMarble.png", "bindingPoints" : [ { "world" : [ 0.0, 0.0 ], "layer": [0.0, 0.0], "description": "Base" }, { "world" : [ 10, 0 ], "layer": [20, 0]}, { "world" : [ 0, 10 ], "layer": [0, 20]} ], "prj": "CoordSys Earth Projection 26, 28, 7, 0, 60" } t = axioma.core.open_json(json) axioma.app.mainWindow.registerDataObject(t)
core.
create_from_json
(json)¶Создать объект данных по описанию в формате JSON
Параметры: | json ( |
---|---|
Результат: | созданный объект данных |
Тип результата: | |
Исключение: |
|
Функция может создавать таблицы в файлах формата MapInfo TAB и таблицы в памяти
Для описания создаваемых объектов используются следующие параметры:
src
- строка, определяющая местоположение источника данных. Это может быть либо путь к файлу с расширением TAB,obj
- строка, определяющая название объекта данныхspec
- для создаваемых таблиц задает схему таблицы. Задается массивом объектов, содержащих следующие атрибуты:name
- имя атрибута. Может не указываться для геометрического атрибутаtype
- тип атрибута. Допустимые значения:string
- строкаint
, int32
- 32-битное целоеint16
- 16-битное целоеint64
- 64-битное целоеdouble
- вещественное число с плавающей запятойdecimal
- вещественное число с фиксированной запятойbool
- логическое значениеdate
- датаtime
- времяdatetime
- дата и времяgeometry
- геометрияlength
для атрибутов типа string
и decimal
указывает максимальную длинуprecision
для атрибутов типа decimal
указывает число знаков после запятойprj
для атрибута типа geometry
задает географическую проекцию в формате MapInfo PRJbounds
для атрибута типа geometry
указывает допустимые границы координат объектов.import axioma
import axioma.core
json = {
"src": "",
"obj": "test",
"spec": [
{"name": "CITY", "type": "string", "length": 20},
{"name": "COUNTRY", "type": "int", "length": 30},
{"type": "geometry", "prj": "CoordSys Earth Projection 26, 28, 7, 0, 60"}
]
}
t = axioma.core.create_from_json(json)
axioma.app.mainWindow.registerDataObject(t)