axioma.core.dp.
Table
¶Абстрактный класс таблицы
Унаследован от:
От него наследуются:
Table
()¶Конструктор класса
Table
(table)Конструктор класса. Создать копию таблицы.
Параметры: table ( Table
) – таблица
allFeatures
()¶Запрашиваются все записи таблицы. При выполнении данного запроса все записи загружаются в память. Если необходимо использовать более гибкий механизм с последовательной частичной загрузкой рекомендуется использовать
selectToFeatureList()
Тип результата: list
[Feature
]Пример последовательного анализа всех записей таблицы:¶features = table.allFeatures() for f in features: print("id", f.id(), f.getAttribute('Страна'))
contentType
()¶Тип контента. Используется при перваоначальной организауии слоев внутри карты. Ка пример, слой с точечными объектами должен располагаться всше слоя с польгональными, а растровый слой размещается снизу по списку.
Тип результата: ContentType
coordSystem
()¶Координатная система таблицы. Если несколько, берется первая попавшаяся
Результат: координатная система таблицы, либо None Тип результата: CoordSystem
dataReset
()¶[signal] Изменились данные таблицы
featureIdComparator
()¶Получение функтора сравнения двух идентификаторов записей в этой таблице. Используется для сортировки записей.
Результат: функтор сравнения двух идентификаторов Тип результата: VariantComparator
hasDataChangeConnection
()¶Имеет ли кто-то подписку на сигнал изменения данных
Результат: True, если имеет, иначе - False Тип результата: bool
saveSchemaToJson
()¶Сохранение схемы таблицы в формате JSON-представления. Пример см.
modifyTableSchema()
Тип результата: list
[QJsonValue
]Пример получения параметров схемы таблицы:¶table = axioma.core.open_json({'src': '/tmp/world.tab'}) json = table.saveSchemaToJson() for field in json: def_feild = field.toObject() print('-----------------') for key in def_feild.keys(): v = def_feild[key] print('ParameterName={}, Value={}'.format(key, def_feild[key].toVariant()))
schemaChanged
()¶[signal] Изменилась схема таблицы
selectFeaturesById
(ids, attribute_names=list(), range=PageRange())¶Получить записи по списку идентификаторов
Параметры: Результат: Список записей
Тип результата: Пример использования:¶# Восстановление; получение записей с полным количеством атрибутов # ... # features - записи с усеченным набором атрибутов # ... ids = [feature.id() for feature in features] full_features = table.selectFeaturesById(ids, table.attributeNames())
selectFeaturesInMbr
(rect, attribute_names=list(), geom_attr_name=str(), range=PageRange())¶Получить записи в прямоугольнике. Сравнение производится с ограничивающим прямоугольником объекта. Для более точного соотвествия необходимо произвести дополнительную проверку.
Параметры:
- rect (
GeoRect
) – географический прямоугольник, в границах которого выбираются объекты (записи)- attribute_names (
list
[str
]) – имена запрашиваемых атрибутов записей- geom_attr_name (
str
) – имя атрибута с геометрией; если пустая строка, будет выполнена попытка найти атрибут; если несколько - берется первый попавшийся, если нет - возвращается пустой список записей- range (
PageRange
) – диапазон записейРезультат: Список записей
Тип результата: Пример использования:¶# ... # coord_system - Долгота-Широта # ... georect = GeoRect(QRectF(-180, 0, 90, 90), coord_system) features = table.selectFeaturesInMbr(georect, table.attributeNames())
selectToFeatureList
(query, range=PageRange())¶Запрашиваются записи, удовлетворяющие запросу query
Параметры:
- query (
TableQuery
) – запрос к таблице- range (
PageRange
) – диапазон записей. Может использоваться как ограничитель записей при загрузке порциями (см. пример)Результат: Список записей
Тип результата: Пример использования:¶# Запросим последовательно порциями по 10 записей count = table.count(QuerySelectAll()) print('Общее количество записей =', count) part_count = 10 start_record = 0 while start_record < count: print('--- Запрашиваем от {} до {}'.format(start_record+1, start_record+part_count)) features = table.selectToFeatureList(QuerySelectAll(table.tableSchema().attributeNames()), PageRange(start_record, part_count)) start_record = start_record + part_count for f in features: print('ID =', f.id())
sourceOfChanges
()¶Определяет таблицу, данные из которой являются источником изменений в текущей таблице
Тип результата: Table
tableSchema
()¶Схема таблицы
Тип результата: TableSchema