quarta-feira, 8 de maio de 2019

PostGIS no Android: uma possível arquitectura

Na sequência de dois posts de ontem sobre o PGTop de 2010, e o S.M.A.R.T de 2013, respectivamente, ficou de referir a relevância, ainda hoje, 2019,  de ambos na definição de uma possível arquitectura de uma app mais gis

Por exemplo, uma app que comunique com PostGIS para carregar uma shapefile na base de dados a partir do Android. Ou seja, fazer no dispositivo móvel aquilo que já se faz há muito tempo na linha de comando do PC. Estou-me a lembrar da shp2pgsql (aqui na documentação da versão 1.3.6 do PostGIS, de 2009).    

Uma possível alternativa, seria continuar a utilizar a linha de comando, mas desta vez na shell do Linux que faz parte de qualquer distribuição do Android. Por exemplo, com o Terminal Emulator for Android. O Terminal IDE já não está na Store pelos motivos explicados aqui, onde também é explicado como continuar a utilizá-lo no Android 5.0 Lollipop, ou superior.

Para esta alternativa teriam que encontrar na internet a shp2pgsql, ou melhor ainda, a ogr2ogr, compilada para ARM Linux, bem como as respectivas dependências. E se não a encontrassem, teriam que ser vocês a compilá-la. Por exemplo, seguindo as instruções em:
https://trac.osgeo.org/gdal/wiki/BuildingForAndroid (foram recentemente actualizadas)
    
Outra alternativa, ainda, seria utilizar as bindings em Java da OGR, as quais podem ser geradas utilizando também as instruções anteriores. E até temos nessas bindings uma implementação em Java da ogr2ogr: a ogr2ogr.java.

Para esta última alternativa será melhor estar relativamente familiarizado com a documentação de desenvolvimento do Android NDK, por exemplo Usar bibliotecas pré-compiladas (está em português!).


Descomplicando(!), e voltando ao PGTop de 2010, e ao S.M.A.R.T de 2013.

Relativamente ao PGTop, a parte mais difícil está feita, ou seja estabelecer uma conexão com uma base de dados PostgreSQL, ...autenticação, ...e pardais ao ninho! 

Poderão quando muito ter que utilizar uma versão mais recente do ficheiro jar JDBC: o postegresql.jar

Hão-de precisar também, e recorrendo de novo à documentação do PostGIS 1.3.6 de 2009, do postgis.jar. Ou não. Podem nem precisar de aceder aos tipos espaciais do PostGIS.


Relativamente ao S.M.A.R.T, está lá tudo:
- a dependência necessária para ler a shapefile;
- o explorador de ficheiros necessário para seleccionar a shapefile;
-  como restringir as extensões de ficheiros a .shp, ao procurar a shapefile no sistema de ficheiros;

A transformação dos objectos (geometrias e atributos) da shapefile em POJO também está lá. Ou se não quiserem depois ir tocar nos tipos espaciais do PostGIS, enviam a shapefile inteira para a BD.

Enfim, a versão do OSMDroid é um pouco antiga mas como está a utilizar o wrapper à volta do Google Maps SDK para Android (o qual está na versão 2 há uns bons 10 anos), tão cedo não quebra. As actualizações são feitas ao nível da Google Play Services, sem quebras de API.


E pronto. Só falta mesmo é utilizar um design mais bonito, e mais moderno, porque se não for assim, tecnologias com 10 anos podem funcionar muito bem, mas não vendem! 

    




 








 



Sem comentários:

Enviar um comentário