Использовать тип массива [] в QGIS из PostgreSQL


9

Я только начинающий в ГИС, поэтому я буду рад увидеть здесь любой комментарий.

У меня есть таблицы в PostgreSQL, которые я подключил к QGIS. В таблицах есть столбцы с типом данных array[]. Но пользователям нелегко вставить данные в столбец, используя такое представление как {a, d, c}. Есть ли простой способ редактировать данные?

У меня просто есть идея поместить данные в QGIS, такие как «a, b, c», и сделать triggerINSERT / UPDATE перед тем, как поместить данные в Postgresтаблицу в правильном виде. Но это также кажется не лучшим способом.

Ответы:


1

Единственный способ, о котором я знаю, это своего рода «клудж для каждого использования».

Например, у меня есть данные, которые включают в себя массив номеров свойств (имя атрибута propnum_array, dtype varchar[]), и я иногда хочу идентифицировать любые данные, где массив пуст.

Проверка на propnum_array = {}или propnum_array is nullили propnum[0]=''(или любые другие вариации на тему этого типа) делает QGIS заторможенным, однако я могу сделать regexp_match( propnum_array,'\\d')или propnum_array ilike '{""}'или propnum_array = '{""}'и разделить данные на вещи, которые имеют непустые, propnum_arrayи вещи, которые не имеют.

Это означает, что если массивы имеют структуру (например, конкретные значения для определенных элементов в массиве), вы можете выполнить поиск таких: если вам нужны все значения, где вторым элементом в массиве из 3 элементов является «Y», то вы захотите что-то вроде этого regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(почти наверняка вам нужно экранировать запятые и одинарные кавычки внутри строки совпадения, но это вариант использования для кого-то, о ком нужно беспокоиться).

Тот факт, что propnum_array ilike '{""}'работает, похоже, указывает на то, что QGIS рассматривает массивы так, как если бы они были текстовыми. Кроме того, он может преобразовывать их в текст на лету, если это необходимо, но тогда не имеет смысла недокументировать типы массивов (AFAIK). Я не смог найти никаких документов по обработке массивов, и есть вопросы в списке рассылки osgeo-qgis еще в январе 2015 года.

Я предполагаю, что главная подсказка в том, что в редакторе выражений нет функций массива, хотя я понимаю, что плагин « Маска ввода, управляемая данными» обрабатывает массивы начиная с версии 1.0.0 (февраль 2015 г.).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.