Использование GeoPackage вместо SpatiaLite, и наоборот?

36

Сейчас я использую QGIS 2.18, которая включает поддержку формата GeoPackage.

Я знаю, что GeoPackage похож на замену Shapefile, но не совсем так, поскольку GeoPackage обладает возможностями базы данных. В то же время GeoPackage не является полной заменой SpatiaLite, потому что он не имеет пространственных запросов и функций. Также Spatialite поддерживает GeoPackage.

Итак, в контексте редактирования QGIS, когда имеет смысл использовать GeoPackage (и обращаться к GeoPackage из SpatiaLite для задач Spatial SQL), и когда лучше использовать только Spatialite?

Пахбло Маркс
источник
1
Меня тоже интересует этот вопрос. Имейте в виду, что поддержка геопакетов в настоящее время ограничена из-за ошибки блокировки после первого редактирования.
hilpers
Но это уже решено ?! Не усвоил Проблемы с 2.18.
Матовый
К сожалению, я использую 2.18.3
hilpers
Я протестировал его с 2.18.3 с помощью процедуры, написанной на старом трекере ошибок, и не смог воспроизвести ее. При каких обстоятельствах у вас возникла проблема?
Матовый
Я также испытываю ошибку блокировки после первого редактирования с GeoPackage, но только когда я использую новый импорт DWG / DXF в 2.18.3. Я могу успешно импортировать DWG и первоначально отредактировать созданный GeoPackage (например, чтобы привязать его к плагину Vector Bender). Но как только я закрываю проект QGIS и снова открываю, кнопка редактирования переключателя становится серой, и GeoPackage не может быть отредактирован снова.
Роб Уилсон,

Ответы:

33

Небольшое сравнение между GeoPackage и SpatiaLite в QGIS. На данный момент использование GeoPackage с QGIS не очень продуктивно. Может измениться довольно быстро, хотя (см. Дополнения!).

Некоторые дополнения, касающиеся нового псевдонима QGIS 2.99 QGIS 3, ноябрь 2017 г. (также добавлено для сравнения): теперь GeoPackage почти без проблем работает в QGIS 3. Возникли некоторые незначительные проблемы, связанные с версией для разработчиков QGIS. Также решается самая проблемная проблема для SpatiaLite. Столбцы теперь можно удалять без каких-либо дополнительных обходных путей. Оба по-прежнему не поддерживают запись растров через графический интерфейс, что не является большой проблемой, так как растры в базе данных не являются основной целью. Оба формата действительно хорошие рабочие форматы. Основное внимание для GeoPackage уделяется транспортному формату, а для SpatiaLite - простой файловой системе баз данных со множеством инструментов для построения локального хранилища данных (поскольку это скорее СУБД, чем файловый формат).

Как есть:

  1. транзакционный
  2. SQL и представления (но представления по-разному реализованы в программном обеспечении)
  3. "все в одном" векторные слои, символы и текст, растр
  4. таблицы атрибутов практически без ограничений по сравнению с шейп-файлом
  5. время от времени нужен ВАКУУМ (хранилище данных для конкретной базы данных)
  6. большинство типов геометрии (например, кривые)

GeoPackage:

  1. является стандартом OGC, основанным на SQLite, означает, что реализация должна быть более согласованной в различных программах; например, символы могут работать в QGIS и ArcMap в будущем, когда используются стили SLD
  2. довольно молодой (2014 г.), в QGIS до 2.18 довольно много проблем (обновление: хорошая поддержка в QGIS 3)
  3. позволяет легко удалять столбцы в QGIS для «обычных» пользователей, противостоящих SpatiaLite
  4. прямо сейчас DB-Manager не очень хорошо работает с ним, и поддержка растров ограничена чтением одного интегрированного растра (без записи в него) (с использованием QGIS 2.18.3) (обновление: DB-Manager теперь хорошо работает с геопакетом)
  5. представления не работают в QGIS, но через виртуальный слой не представляют большой проблемы, если они не используются для совместного использования многими пользователями (обновление: все еще нет представлений, поскольку QGIS 3 не может фактически создавать представления, но не может их читать впоследствии)
  6. инструменты геообработки не позволяют добавлять к существующему файлу (заменяет только весь файл) (обновление: работает сейчас)

SpatiaLite:

  1. является расширением SQLite, по-разному реализованным в GI-программном обеспечении (в основном из-за проблем с драйверами и версиями)
  2. намного старше и до сих пор лучше интегрированы в QGIS
  3. в QGIS вы не можете удалять столбцы без несложного SQL-запроса, но для некоторых пользователей уже слишком много «кода» (обновление: QGIS 3 делает это сейчас)
  4. довольно большой файл, когда в нем есть только геометрия, не очень хороший транспортный формат, но для хранения локальной базы данных (он начинается с чего-то около 5 МБ)
  5. Множество дополнительных инструментов (представления, могут создавать дорожные сети, множество форматов импорта / экспорта, ST_Queries и многое другое)
штейн
источник
Планируете ли вы использовать GeoPackage или SpatiaLite только с QGIS или с другим программным обеспечением? SpatiaLite также поддерживает все это gaia-gis.it/gaia-sins/spatialite-sql-latest.html автономно без QGIS.
user30184
Я использую в основном SpatiaLite вместе с QGIS, но также и со SpatiaLite-GUI. Я представляю это в своих учебных курсах для QGIS. Единственный момент - проблема удаления столбцов для начинающих. Я не представляю его на тренингах ArcGIS, поскольку там есть база данных FileGeodatabase, которая в некоторых органах власти является обязательной (в 10% случаев, когда это не шейп-файл, который все еще является современным ...). Я начал анонсировать GeoPackage на продвинутых курсах QGIS, но с недостатками, написанными выше. Но так как GDAL имеет хорошую реализацию, не может пройти много времени, пока в QGIS не появятся нужные кнопки.
Матовый
Как вы говорите, ваше сравнение касается использования QGIS. Я хотел бы подчеркнуть, что оценка «SpatiaLite» или «GeoPackage» лучше по «столбцу удаления» очень специфична для QGIS. Сам SQLite не поддерживает эту операцию напрямую sqlite.org/lang_altertable.html . Те же обходные пути работают как для SpatiaLite, так и для GeoPackage, даже некоторые программы могут пропустить кнопки.
user30184
1
Я поместил это в контекст исходного вопроса, где речь шла о QGIS. Пункт с колонкой был одним примером, где я надеюсь, что стандарт приведет к более последовательному использованию в программах, поскольку это тема для «обычного» пользователя. Не уверен, что это будет возможно с SpatiaLite, так как уровень интеграции сильно отличается даже через несколько лет. В конце концов для меня это приведет к тому, что это может быть новый стандартизированный транспортный формат (GeoPackage). SpatiaLite гораздо больше похож на ГИС со своими встроенными функциями (ST-запросы, множество параметров импорта данных, сеть ...).
Матовый
И GeoPackage, и SpatiaLite основаны на SQLite.
Матиас Кун,