Преимущества использования пространственного над шейп-файлом? [закрыто]

35

Пространство оказалось более полезным, чем шейп-файлы, поскольку у него нет ограничений шейп-файла и он также переносим. Многие люди здесь используют шейп-файлы для обмена данными, и даже эксперты не знают об этом новом формате.

Каковы преимущества использования пространственных файлов над шейп-файлами?

Может ли он использоваться вместо шейп-файла?

Пожалуйста, сосредоточьтесь только на тех форматах, которые являются портативными, т.е. могут быть обменены с помощью USB-накопителей. GML, GeoJSON, KML, CSV не являются опцией, и их нельзя напрямую редактировать в ГИС.

ОБНОВЛЕНИЕ: Прошло более 5 лет, и новая разработка направлена ​​на геопакет, который связан с пространством.

Итак, теперь вопрос больше похож на преимущества использования GEOPACKAGE над GEODATABASE?

neogeomat
источник

Ответы:

27

Шейп-файлы являются наименьшим общим знаменателем обмена файлами векторных данных ГИС: отправьте архив шейп-файлов, и вы можете в значительной степени гарантировать, что кто-то сможет создать из него базовую ГИС.

Преимущества SpatiaLite включают в себя:

  • все в одном файле; ни один из shp / shx / dbf / idx / prj для слоя беспорядок.
  • Логика, а также данные могут быть включены в виде VIEWS и TRIGGER.
  • встроенные пространственные индексы, которые позволяют осуществлять быстрый поиск больших площадей.
  • они являются реальными (если немного ограничены, в основном в многопользовательском доступе) системами баз данных, без навыков администрирования базы данных.

Но есть некоторые недостатки:

  • не каждый может их использовать.
  • они все еще в основном ограничены геометриями, построенными из узлов и прямых линий; если вам нужны сплайны и поверхности, посмотрите в другом месте.
scruss
источник
8
Хороший пост, но два момента о пространственных показателях. Шейп-файлы также могут быть пространственно проиндексированы, и во-вторых, вам необходимо явно присоединиться к пространственному индексу Spatialite, что может привести к некоторым громоздким запросам. Я все еще предпочитаю перемещать данные в базе данных Spatialite, но импортировать их в базу данных PostGIS, чтобы воспользоваться преимуществами более надежного планировщика запросов.
HeyOverThere
22

Шейп-файлы привязаны к одному типу геометрии, поэтому вы получаете кучу файлов для одного проекта. Имена полей тоже ограничены из-за использования антикварного формата базы данных.

В Spaceite вы можете хранить все данные проекта в одном файле; и назовите поля, как вы хотите (ну, почти).

Единственным недостатком пространства является быстрый цикл обновления, затрудняющий чтение или запись данных, записанных в другой (более старой) версии.

Andrej
источник
15

В дополнение к ответу scruss шейп-файлы имеют некоторые ограничения:

  • максимальная длина имени поля составляет 10 символов
  • максимальный размер файла (.dbf / .shp) составляет 2 ГБ
  • числовые атрибуты хранятся в виде символов (целые числа / числа с плавающей запятой), что может вызвать проблемы с округлением и т. д.
  • Значения NULL по-разному интерпретируются в разных системах.
Oyvind
источник
4

Самым большим преимуществом для меня является система реляционных баз данных в едином формате. Среди многих преимуществ - использование пространственных функций для создания представлений. Рассмотрим случай, когда вам дали набор точек, и ваша методология заключается в том, чтобы буферизовать базу точек на основе атрибута, а затем проверить совпадение этих буферов с другими географическими объектами. Использование этого рабочего процесса с шейп-файлами обычно требует, чтобы каждая операция сохранялась как другой шейп-файл. Теперь, если какие-либо из ваших данных обновляются, вы должны снова запустить всю цепочку. Не говоря уже о том, что в некоторых средах входные данные могут быть изменены без вашего ведома. Это не проблема, если вы полагаетесь на представления SQL для геометрических операций. (Я знаю, что есть инструменты, которые решают эту проблему с шейп-файлами, но вопрос касается базы данных spatiaLite.)

SCRo
источник
2

Все, что находится в одном файле, также является недостатком: гораздо труднее исправить, если что-то сломано. Размер файла тоже, кажется, начинается с 3,7 МБ, даже для почти пустых наборов данных. Они также поддерживают только текстовые, целочисленные и плавающие поля. Нет даты / времени или логических полей. По крайней мере, при тестировании в QGIS 1.8

Уффе Кусгаард
источник
1
У Spatialite есть типы даты / времени, поскольку у него есть типы для чего угодно: типа даты и времени .
scruss
2
«У SQLite нет класса хранения, предназначенного для хранения дат и / или времени», цитируемого со страницы, на которую вы ссылаетесь. Да, в текстовом поле можно хранить что угодно, но это все же просто текст, который необходимо проанализировать, прежде чем вы сможете выполнять на нем математические вычисления.
Uffe Kousgaard
Нет, ты не; Вы можете делать запросы, как select * where date < '1980-01-01'и он делает математику для вас.
scruss
что означает, что текст анализируется. Альтернативой является дата, хранящаяся в виде числа, которое непосредственно понимается двигателем. Без риска, что вы столкнетесь с 31 апреля или другими незаконными значениями. С текстом он должен быть переведен в число, прежде чем можно применить оператор <.
Uffe Kousgaard
1
@UffeKousgaard: В файлах .dbf числовые значения (целые числа / числа с плавающей запятой) и даты и время хранятся в виде символов, поэтому в случае синтаксического анализа шейп-файлы не имеют здесь никакого преимущества.
Ойвинд