Альтернативи Shapefiles як типи даних з відкритим кодом, крос-платформи [закрито]


20

Я працюю над програмним забезпеченням, дуже орієнтованим на ESRI, але майбутня версія, ймовірно, не використовує програмне забезпечення ESRI. Він використовує форми Shapefiles та Geodatabases. Я планую отримати всі свої дані в Shapefiles в очікуванні майбутніх версій програмного забезпечення, які, ймовірно, будуть на Android та інших мобільних пристроях. Виявляється, що Shapefiles - це найпоширеніший тип даних для функцій у світі ГІС з відкритим кодом, але які інші, і яку користь вони приносять? Я знайомий з GeoJSON та KML, але впевнений, що є й інші.

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



1
Це питання з 2011 року було задано ще до існування GeoPackage, і відповіді, природно, не містять такої альтернативи.
користувач30184

2
Esri File Geodatabase має максимальну довжину поля знаків, яке б конкурувало з текстовим вмістом більшості невеликих бібліотек, Esri Personal Geodatabase також підтримує дуже довгі текстові поля. До них можна отримати доступ через QGIS і, звичайно, Esri ArcGIS, але підтримка цих типів даних обмежена поза цими пакетами. Однак остерігайтеся версії, я б спробував створити сумісність 9.3, оскільки більшість програм Esri, з якими ви можете зіткнутися, становитимуть 10+, і API геоданих для QGIS повинні підтримувати цю версію. GeoJSON та KML також можуть підтримувати великі текстові поля, але вони не настільки читаються загально.
Michael Stimson

1
Гм, 9.3 не є гарним планом сумісності файлів з геоданими - API FGDB не підтримує 9.x-style .gdb.
Вінс

1
Форми файлів @ElioDiaz все ще існують, незважаючи на їх обмеження, оскільки вони є найбільш універсальним носієм передачі функцій - майже кожен GIS-пакет відкривається або може імпортувати Esfi shapefile. Формат - це відкритий стандарт, тому кожен може читати та реалізовувати по-своєму. Безсумнівно, є найкращі формати функцій ГІС, але вони не настільки загальноприйняті ... цю тему багато разів обговорювали на GIS.SE. Як би ми не хотіли, щоб інакше shapefiles, ймовірно, був найнижчим загальним знаменником для функцій протягом певного часу, тому нам просто потрібно посміхнутися і винести це.
Michael Stimson

Відповіді:


18

Як говорить @ user890, це дуже залежить від того, як будуть використовуватися дані. В основному є два способи доступу до даних:

  1. Завантажуючи все це в пам'ять за один раз, а потім отримуйте доступ / запитуйте дані в пам'яті.
  2. Запитуючи конкретні функції, обмежувальні коробки тощо.

Формати на зразок GeoJSON та KML найкраще підходять для тих випадків, коли ви хочете завантажити все за один раз. Переваги полягають у тому, що дані можна структурувати так, що більше підходить для вашої програми. Мінуси: більші розміри файлів (оскільки вони засновані на тексті) та неможливість виконувати ефективний запит безпосередньо з файлу.

SQLite / Spatialite краще для запитів (SQL), але складніше структурувати дані - вам потрібно розрівняти все в таблиці бази даних, а потім робити JOIN (що може бути дорого) під час запитів.

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


14

Я думаю, що список векторного формату OGR (посилання оновлено) визначає майже кожен формат з відкритим кодом, про який я коли-небудь чув, і багато інших. Кожен з цих форматів має свої переваги / недоліки, тому важко сказати, який є "найкращий". Для мобільних додатків я думаю, що розмір файлу буде одним з найбільш важливих факторів.

Для мобільних додатків я думаю, що формат sqlite / просторит буде логічним форматом для початку. Я знаю, що Android надає вбудовану підтримку sqlite. Отже, припускаючи, що ви можете завантажити просторові розширення, у вас буде доступний дуже потужний gis.

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


13

Новий формат, який з’явився нещодавно, - це геопакет . Ця специфікація побудована на базі даних SQLite, тому вона має таку ж файлову основу, але з додатковою перевагою є стандартом OGC .
Що стосується розміру файлу, цілком ймовірно , що формат зберігання є більш компактним , ніж .shpта .dbfформатом для просторових і атрибутивних даних , використовуваних в Шейп. Отже, GeoPackage, ймовірно, буде такого ж розміру або менший, ніж сукупність тих самих функцій у файлі форм.
На цій фотографії зображено каналізаційну мережу в Сан-Дієго, збережену як Shapefile, так і GeoPackage. Як бачите, вони по суті однакового розміру. Форма форми та розмір геопакету
Оскільки цей формат заснований на SQLite, він повинен бути готовим для мобільних пристроїв. Багато програм вже використовують цей формат бази даних для зберігання, тому це перевірена технологія. Можна використовувати крос-платформу без будь-якого перекладу.


4

Погодьтеся з Lennert, виберіть правильний формат для роботи.

Однак я знайшов Spatialite досить універсальним форматом. У вас є єдиний файл, який дає вам можливість зберігати та обмінюватися даними, наприклад, файл форми, але ви заперечуєте проблеми, які ви згадуєте, обмежуючи кількість символів; надаючи вам можливість використовувати переваги просторової бази даних.

На жаль, він не повністю підтримується в ArcGIS (я не намагався трохи часу, щоб я помилявся), але чудово працює в QGIS.


4

Існує велика кількість різних форматів, і найкраще залежить від ваших наборів даних, якими ви користуєтеся, від інструментів, які ви використовуєте, і речей, які ви хочете зробити з цим.

Деякі з них, які я використовую:

  • База даних файлів Geodatabase & простори: База даних, яку я люблю використовувати. Він може вміщувати всілякі дані та мати взаємозв'язки, індексувати ... Я використовую gdb під час роботи в середовищі Esri, просторового для будь-чого іншого.

  • GeoJson: Легкий для читання формат, який я зазвичай використовую для невеликих наборів даних, які не потребують особливих способів індексації

  • Власні бази даних: я схильний використовувати це для масивних наборів даних і складних алгоритмів.

Але є і тонни інших.


3

Я рекомендую використовувати базу даних SQLite / spatiallite. Це єдиний файл, як база даних geodatabase (одна до багатьох таблиць / шарів всередині) і може використовуватися в ArcGIS Desktop та QGIS.


Я зберігав дані багатокутника в sqlite і завантажував їх у QGIS, і отримав повідомлення, що говорить: "CRS не визначено: за замовчуванням CRS EPSG: 4326 - WGS84". Чи не втрачає вона інформацію про проекцію?
Ічіро

За допомогою якого програмного забезпечення ви врятували шар багатокутника на sqlite?
художній твір21

1

Параметри дійсно залежать від того, якою мовою ви будете користуватися та як будуть використовуватися дані. Android, швидше за все, буде Java. Кожен варіант буде своєрідним порівнянням витрат / вигод на основі цього рішення. Усі формати даних оптимізовані для певних випадків використання.

Наступне питання - як будуть використовуватися дані. Чи читатиме мобільний додаток просто просторові дані? Або це буде читання та запис даних часто? Як часто він обмінюватиметься даними з іншими пристроями чи серверами?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.