segunda-feira, 20 de maio de 2019

SpatiaLite no Android

Gosto muito do SpatiaLite.

Basta referir o seguinte episódio que se passou há meia-dúzia de anos: 

Normalmente sempre que preciso de configurar o GeoServer ligado a uma BD Espacial, por regra o PostGIS, utilizo primeiro o SpatiaLite de forma a obter mais rapidamente um Produto Viável Mínimo. Deixando de parte outras considerações que me levem a fazer isso, a verdade é que enviei para produção um Produto Final ligado a SpatiaLite, sem ter voltado a ligar a PostGIS. Ou seja, a imagem levava o PostGIS só para enfeitar!

Como dos requesitos constava a possibilidade de utilização simultânea por, até, 10 utilizadores, e como nunca houve feedback, positivo ou negativo, presume-se que nem deram por ela.

Last edit wins model
 
Tratando-se de SQLite, existem obviamente situações onde faz mais sentidos ser utilizado, o que não quer dizer que não possa ser utilizado também em situações onde faça aparentemente menos sentido, por exemplo server-side database.

As permissões de utilizador dependem apenas das permissões de acesso ao ficheiro.


Adiante,

Do FAQ da página do GeoPackage (um FAQ já recorrente neste blog):

What is the relationship between GeoPackage and SpatiaLite?

SpatiaLite was a major influence on the vector portions of GeoPackage but after extensive discussions, the working group chose to diverge from the SpatiaLite format in a few subtle ways. SpatiaLite now supports GeoPackage as of version 4.2.0. 

Ou seja, a componente vectorial do GeoPackage foi fortemente inspirada pelo SpatiaLite, mas o SpatiaLite é que teve de se adaptar ao standard OGC e a passar a suportar GeoPackage.

What were the reasons to go with SQLite, when OGC has invested heavily in PostGIS? 

OGC has not invested in PostGIS, rather PostGIS implements OGC standards. PostGIS is just like any other RDBMS implementation of the Simple Features spec. The primary use case for designing GeoPackage was mobile device use, and that's why SQLite was chosen as a platform. In this case OGC as an organization is specifying a technology. This is unusual for OGC and the decision was not made lightly, but practicality and ease of implementation won out over standards purity. And we are happy to say we have yet to get any negative feedback on this decision -- probably because SQLite is considered more like a library than a standalone application.  

Ou seja, o GeoPackage foi desenhado principalmente a pensar na utilização em dispositivos móveis. E é por isso que o SQLite foi escolhido.

...e como o SpatiaLite também é SQLite, e também suporta GeoPackage, e anda cá há mais tempo...


Da página original do SpatiaLite encontramos duas ligações relacionadas com implementações para Android:
- A referente à versão 4.3. a qual está agora na umbrela do projecto geopaparazzi (fica para outras núpcias!);
- E a 3.0.1 (de 2012) que ficou onde estava! Tem Wiki.

A versão 3.0.1 pode ser descarregada do Wiki. De onde podem ser reaproveitadas as diferentes abi (armeabi,..), 32 bits apenas, que se encontram na pasta libs. As bindings em Java encontram-se como de costume na pasta src.

O projecto encontra-se também arquivado no Google Code.

No separador de Downloads é possível descarregar o apk do Spatialite-Android, app que já não se encontra publicada na PlayStore. Mas que funciona perfeitamente em Android 8.0.0 - Oreo. 


Selecionando "Map View" temos o ficheiro SpatiaLite de exemplo sobreposto, mas não visível, ao Google Maps para Android,

Clicando sobre qualquer região de Itália fica realçada a respectiva região,


















   


Sem comentários:

Enviar um comentário