Данный модуль является модулем ядра. Модуль состоит из подмодулей.
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)