Я работаю над программным обеспечением, очень ориентированным на ESRI, но в будущей версии, скорее всего, не будет использоваться программное обеспечение ESRI. Он использует шейп-файлы и базы геоданных. Я планирую передать все свои данные в Shapefiles в ожидании будущих версий программного обеспечения, которые, вероятно, будут на Android и других мобильных устройствах. Похоже, что шейп-файлы являются наиболее распространенным типом данных для функций в мире ГИС с открытым исходным кодом, но каковы другие и какие преимущества они приносят? Я знаком с GeoJSON и KML, но я уверен, что есть и другие.
Я хотел бы знать все варианты, но меня особенно интересуют типы наборов данных, которые лучше всего подходят для хранения на мобильных устройствах (данные должны быть доступны без подключения к Интернету).
источник
Ответы:
Как говорит @ user890, это очень сильно зависит от того, как будут использоваться данные. В основном есть два способа доступа к данным:
Форматы, такие как GeoJSON и KML, лучше всего подходят для случаев, когда вы хотите загрузить все за один раз. Преимущества состоят в том, что данные могут быть структурированы таким образом, чтобы это больше подходило для вашего приложения. Недостатки: большие размеры файлов (поскольку они основаны на тексте) и невозможность делать эффективные запросы непосредственно из файла.
SQLite / Spatialite лучше подходит для запросов (SQL), но сложнее структурировать данные - вам нужно сгладить все в таблицы базы данных, а затем выполнять соединения (что может быть дорого) при запросах.
На самом деле не существует идеального формата файла, который бы охватывал все (но опять же шейп-файлы далеки от совершенства). Одна альтернатива, которую следует рассмотреть, - это использование собственного формата для конкретного приложения, но это работает только в том случае, если вам не нужно делиться данными с внешним миром.
источник
Я думаю, что список векторных форматов OGR (ссылка обновлена) идентифицирует практически все форматы с открытым исходным кодом, о которых я когда-либо слышал, и многие другие. Каждый из этих форматов имеет свои преимущества / недостатки, поэтому сложно сказать, какой из них «лучший». Я полагаю, что для мобильных приложений размер файла будет одним из наиболее важных решающих факторов.
Для мобильных приложений я бы подумал, что sqlite / пространственный формат будет логическим форматом для начала. Я знаю, что Android обеспечивает встроенную поддержку sqlite. Таким образом, при условии, что вы можете загрузить пространственные расширения, у вас будет очень мощный доступ к ГИС.
В зависимости от того, насколько вы авантюрны, может показаться, что создание gdal для Android не является невозможным. Тогда вы могли бы иметь гораздо больше форматов в вашем распоряжении. Я уверен, что многие пользователи на этом сайте были бы заинтересованы, если бы вы пошли по этому пути.
источник
Новый формат, который появился недавно, - это Geopackage . Эта спецификация построена поверх базы данных SQLite, поэтому она имеет ту же основу для одного файла, но с дополнительным преимуществом в качестве стандарта OGC .
Что касается размера файла, вполне вероятно , что формат хранения является более компактным , чем
.shp
и.dbf
форматом для пространственных и атрибутивных данных , используемых в шейпе. Следовательно, GeoPackage, вероятно, будет того же размера или меньше, чем совокупность тех же объектов в шейп-файле.На этой фотографии показана канализационная сеть в Сан-Диего, сохраненная как Shapefile и GeoPackage. Как видите, они по сути одинакового размера.
Поскольку этот формат основан на SQLite, он должен быть готов для мобильных устройств. Многие приложения уже используют этот формат базы данных для хранения, поэтому это проверенная технология. Может использоваться кроссплатформенно без перевода.
источник
Согласитесь с Lennert, выберите правильный формат для работы.
Однако я обнаружил, что Spatialite - довольно универсальный формат. У вас есть один файл, который дает вам гибкость в хранении и совместном использовании данных, таких как шейп-файл, но вы сводите на нет проблемы, которые вы упоминаете, с ограничением символов; предоставляя вам возможность использовать преимущества пространственной базы данных.
К сожалению, он не полностью поддерживается в ArcGIS (я не пробовал немного, поэтому могу ошибаться), но отлично работает в QGIS.
источник
Существует множество различных форматов, и лучшее из них зависит от вашего набора данных, используемых вами инструментов и того, что вы хотите с ним сделать.
Некоторые из них я использую:
Файловая база геоданных и пространственные базы данных: ловушка, которую я люблю использовать. Он может содержать все виды данных и иметь отношения, индексацию ... Я использую GDB при работе в среде Esri, пространственный для всего остального.
GeoJson: Легко читаемый формат, который я обычно использую для небольших наборов данных, которые не требуют много для индексации
Правильные базы данных: я склонен использовать это для массивных наборов данных и сложных алгоритмов.
Но есть и множество других.
источник
Я бы порекомендовал использовать базу данных SQLite / spatiallite. Это один файл, такой как база геоданных (от одной до нескольких таблиц / слоев внутри), и он может использоваться в ArcGIS Desktop и QGIS.
источник
Варианты действительно зависят от того, какой язык вы будете использовать и как будут использоваться данные. Android, скорее всего, будет Java. Каждый вариант будет своего рода сравнением затрат и выгод, основанным на этом решении. Все форматы данных оптимизированы для определенных случаев использования.
Следующий вопрос - как будут использоваться данные. Будет ли мобильное приложение просто читать пространственные данные? Или это будет чтение и запись данных часто? Как часто он будет обмениваться данными с другими устройствами или серверами?
источник