Estou trabalhando em um software que é muito orientado a ESRI, mas uma versão futura provavelmente não estará usando o software ESRI. Ele usa Shapefiles e Geodatabases. Estou planejando levar todos os meus dados para o Shapefiles em antecipação a versões futuras do software que provavelmente estarão no Android e em outros dispositivos móveis. Parece que os Shapefiles são o tipo de dados mais comum para recursos no mundo GIS de código aberto, mas quais são os outros e quais benefícios eles trazem? Eu estou familiarizado com GeoJSON e KML, mas tenho certeza que existem outros.
Gostaria de conhecer todas as opções, mas estou particularmente interessado nos tipos de conjuntos de dados mais adequados para armazenamento em dispositivos móveis (os dados devem estar acessíveis sem uma conexão à Internet).
fonte
Respostas:
Como o @ user890 diz, isso depende muito de como os dados serão usados. Principalmente, existem duas maneiras de acessar os dados:
Formatos como GeoJSON e KML são mais adequados para casos em que você deseja carregar tudo de uma só vez. Os benefícios são que os dados podem ser estruturados de maneira mais adequada para o seu aplicativo. As desvantagens: tamanhos de arquivo maiores (uma vez que são baseados em texto) e a incapacidade de fazer consultas eficientes diretamente do arquivo.
O SQLite / Spatialite é melhor para a consulta (SQL), mas é mais difícil estruturar os dados - você precisa achatar tudo nas tabelas do banco de dados e depois fazer JOINs (o que pode ser caro) ao fazer a consulta.
Não existe realmente um formato de arquivo perfeito que cubra tudo (mas, novamente, os shapefiles estão longe, longe de serem perfeitos). Uma alternativa a considerar é a rolagem do seu próprio formato específico de aplicativo, mas isso só funciona se você não precisar compartilhar os dados com o mundo externo.
fonte
Eu acho que a lista OGR Vector Format (link atualizado) identifica quase todos os formatos de código aberto que eu já ouvi falar, e muitos mais. Cada um desses formatos tem suas próprias vantagens / desvantagens, por isso é difícil dizer qual é o 'melhor'. Para aplicativos móveis, imagino que o tamanho do arquivo seja um dos fatores decisivos mais importantes.
Para aplicativos móveis, eu acho que o formato sqlite / spatialite seria o formato lógico para começar. Eu sei que o Android fornece suporte nativo para sqlite. Portanto, supondo que você possa carregar as extensões espacial, você terá um GIS muito poderoso disponível.
Dependendo de como você é aventureiro, parece que construir gdal para android não é impossível. Você poderia então ter muitos outros formatos à sua disposição. Tenho certeza de que muitos usuários deste site estariam interessados se você seguisse esse caminho.
fonte
Um novo formato que surgiu recentemente é o Geopackage . Essa especificação é construída sobre o banco de dados SQLite, portanto, possui a mesma base de arquivo único, mas com o benefício adicional de ser um padrão OGC .
Quanto ao tamanho do arquivo, é provável que o formato de armazenamento seja mais compacto que o formato
.shp
e.dbf
para dados espaciais e de atributo usados no Shapefile. Portanto, é provável que o GeoPackage seja do mesmo tamanho ou menor que a totalidade dos mesmos recursos em um shapefile.Esta foto mostra as redes de esgoto de San Diego salvas como Shapefile e GeoPackage. Como você pode ver, eles são essencialmente do mesmo tamanho.
Como esse formato é baseado no SQLite, ele deve estar pronto para dispositivos móveis. Muitos aplicativos já usam esse formato de banco de dados para armazenamento, por isso é uma tecnologia comprovada. Pode ser usado em várias plataformas sem necessidade de tradução.
fonte
Concorde com a Lennert, escolha o formato certo para o trabalho.
No entanto, eu achei o Spatialite um formato bastante versátil. Você tem o único arquivo, oferecendo flexibilidade para armazenar e compartilhar dados como um shapefile, mas nega os problemas mencionados com limites de caracteres; enquanto oferece a oportunidade de explorar os benefícios de um banco de dados espacial.
Infelizmente, ele não é totalmente suportado no ArcGIS (eu não tentei há um tempo para estar errado), mas funciona muito bem no QGIS.
fonte
Existem muitos formatos diferentes e o melhor depende do conjunto de dados que você possui, das ferramentas que você usa e do que deseja fazer com ele.
Alguns dos que eu uso:
Banco de dados de geodatabase e spatialite de arquivos: uma lista que eu gosto de usar. Ele pode conter todos os tipos de dados e ter relacionamentos, indexação ... Eu uso o gdb ao trabalhar em um ambiente Esri, espacial para qualquer outra coisa.
GeoJson: Formato de fácil leitura que geralmente uso para pequenos conjuntos de dados que não exigem muito na indexação
Bancos de dados adequados: costumo usar isso para conjuntos de dados massivos e algoritmos complexos.
Mas há muitos outros também.
fonte
Eu recomendaria usar o banco de dados SQLite / spatiallite. É um único arquivo como o geodatabase (uma a muitas tabelas / camadas) e pode ser usado no ArcGIS Desktop e QGIS.
fonte
As opções realmente dependem do idioma que você usará e como os dados serão usados. O Android provavelmente será Java. Cada opção será um tipo de comparação de custo / benefício com base nessa decisão. Todos os formatos de dados são otimizados para determinados casos de uso.
A próxima pergunta é como os dados serão usados. O aplicativo móvel lerá dados espaciais? Ou estará lendo e gravando dados com frequência? Com que frequência ele trocará dados com outros dispositivos ou servidores?
fonte