Переваги використання просторіту над shapefile? [зачинено]


35

Я знайшов просторіт більш корисним, ніж shapefiles, оскільки він не має обмежень у форміfile, а також він є портативним. Тут багато людей використовують форм-файли для обміну даними, і навіть фахівці не знають про цей новий формат.

Які переваги використання просториту над формними файлами?

Чи можна використовувати його замість shapefile?

Зверніть увагу лише на ті формати, які є портативними, тобто їх можна обмінювати за допомогою USB-накопичувачів. GML, GeoJSON, KML, CSV не є варіантом, і вони не можуть безпосередньо редагуватися в ГІС.

ОНОВЛЕННЯ: Минуло більше 5 років, і нова розробка спрямована на геопакет, пов'язаний з просторовим простором.

Тож тепер питання більше нагадує переваги використання GEOPACKAGE над GEODATABASE?

Відповіді:


27

Shapefiles - це найнижчий загальний знаменник обміну файлами GIS векторних даних: надішліть архів файлів форм, і ви можете гарантувати, що хтось зможе створити з нього базовий ГІС.

До переваг SpatiaLite належать:

  • все в одному файлі; жоден з shp / shx / dbf / idx / prj за безлад.
  • Логіка, а також дані можуть бути включені у вигляді ПРОСМОТРІВ та ТРІГЕРІВ.
  • вбудовані просторові індекси, які дозволяють швидко шукати великі площі.
  • вони є справжніми (якщо дещо обмежені, в основному, для багатокористувацького доступу) систем баз даних, не вимагаючи навичок адміністратора бази даних.

Але є і деякі недоліки:

  • не кожен може ними користуватися.
  • вони все ще здебільшого обмежені геометріями, побудованими з вузлів і прямих ліній; якщо вам потрібні шпони та поверхні, шукайте в іншому місці.

8
Хороший пост, але два пункти щодо просторових показників. Shapefiles також може бути просторово індексовано, по-друге, ви повинні явно приєднатися до просторового індексу Spatialite, що може призвести до деяких непростих запитів. Я все ще віддаю перевагу переміщенню даних у просторовій БД, але імпортую їх у базу даних PostGIS, щоб скористатися більш надійним планувальником запитів.
HeyOverThere

22

Shapefiles пов'язані з одним типом геометрії, тому ви отримуєте купу файлів для одного проекту. Імена полів також обмежені через використання антикварного формату бази даних.

У просторовому просторі ви можете зберігати цілі дані проекту в одному файлі; і назвіть поля, як хочете (ну, майже).

Єдиним недоліком просторового простору є швидкий цикл оновлення, що ускладнює читання або запис даних, записаних в іншій (старшій) версії.


15

На додаток до відповіді scruss, filefiles має деякі обмеження:

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

4

Найбільша перевага для мене - це система реляційних баз даних у єдиному форматі файлів. Серед багатьох переваг - використання просторових функцій для створення поглядів. Розглянемо випадок, коли вам було надано набір точок, а ваша методологія полягає в буферизації бази балів на атрибуті, а потім перевіряйте збіг цих буферів з іншими географічними ознаками. Використання цього робочого процесу з форм-файлами зазвичай вимагає, щоб кожна операція зберігалася як інший файл форми. Тепер, якщо будь-який з ваших даних оновлено, вам доведеться запустити весь ланцюжок ще раз. Не кажучи вже про те, що в деяких середовищах вхідні дані можуть бути змінені вам невідомо. Це не проблема, коли ви покладаєтесь на представлення SQL для геометричних операцій. (Мені відомо, що є інструменти, які вирішують цю проблему за допомогою форм-файлів, але питання стосується бази даних spatiaLite.)


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-файлах, числових колах (цілі числа / плавці) та датах, що зберігаються як символи, тому у випадку розбору, filefiles тут не має переваги.
Oyvind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.