spatialite`` sous android

Transcription

spatialite`` sous android
PROJET PERSONNEL GEOMATIQUE
Présenté par
TCHAKO NGANGUE Gilles Bertrand
En vue de l’obtention du diplôme de
MASTER 2 IASIG
Informatique Appliquée aux Systèmes d’Informations Géographiques
Thème
Etude de la plateforme
opensource ‘’spatialite’’ sous
android
Université de Douala (Cameroun)
Année universitaire : 2014-2015
TCHAKO NGANGUE Gilles Bertrand
RESUME
La géomatique a de plus en plus de domaines d’applications de nos jours et
comme en informatique la problématique du stockage d’informations dans cette
discipline se veut aussi cruciale. Les technologies mobiles ont pris le pas et les
différentes techniques de stockage qui sont maintenant créées doivent forcément en
tenir compte. Il existe aujourd’hui de plus en plus de bases de données
géographiques pouvant s’intégrer sous des systèmes mobiles. Une étude de la base
de données SpatiaLite sous le système mobile Android est faite, elle comporte à
décrire les concepts sous-jacents, faire un état de l’art des solutions équivalentes et
présenter une étude du cas SpatiaLite sous Android avec des exemples.
2
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
Table des matières
INTRODUCTION ....................................................................................................................................... 4
1.
2.
Contexte et justificatifs.................................................................................................................... 5
1.1.
Contexte .................................................................................................................................. 5
1.2.
Justificatifs ............................................................................................................................... 6
Les concepts .................................................................................................................................... 7
2.1.
2.1.1.
Géomatique ..................................................................................................................... 7
2.1.2.
Système d’Information Géographique (SIG) ................................................................... 7
2.1.3.
Données dans les SIG....................................................................................................... 7
2.1.4.
Les formats de données SIG ............................................................................................ 8
2.2.
4.
Les concepts dans les bases de données................................................................................. 8
2.2.1.
Base de données.............................................................................................................. 8
2.2.2.
Système de Gestion de Base de Données (SGBD) ........................................................... 8
2.2.3.
Base de données géographiques ou spatiales ................................................................ 9
2.2.4.
SQLite et SpatiaLite.......................................................................................................... 9
2.3.
3.
Les concepts dans les Système d’Information Géographique ................................................ 7
Les concepts des systèmes d’exploitations mobiles ............................................................... 9
Etat de l’art .................................................................................................................................... 11
3.1.
Route-Me............................................................................................................................... 11
3.2.
CouchBase Mobile ................................................................................................................. 11
3.3.
ArcGIS for Smartphones SDK ................................................................................................. 11
3.4.
Cloudmade SDK ..................................................................................................................... 11
3.5.
gvSIG Mobile.......................................................................................................................... 12
Etude de cas .................................................................................................................................. 13
4.1.
Création d’une base de donnée SpatiaLite ........................................................................... 13
4.2.
Intégration de SpatiaLite sous un projet Android ................................................................. 18
4.3.
Connexion de notre projet Android à la BDD Cameroun.sqlite ............................................ 18
4.4.
Quelques exemples de méthode de requêtes spatiales sous Android ................................. 19
CONCLUSION ......................................................................................................................................... 21
BIBLIOGRAPHIE ...................................................................................................................................... 22
WEBOGRAPHIE ...................................................................................................................................... 22
3
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
INTRODUCTION
Dans le cadre l’aboutissement de notre formation de MASTER 2 IASIG
(Informatique Appliquée aux Systèmes d’Information Géographique) de l’Université
de Douala, notamment dans l’Unité d’Enseignement : Projet Personnel Géomatique,
il nous est assigné à chacun un sujet d’étude et de recherche. Le sujet d’étude :
« Etude de la plateforme opensource ‘’spatialite’’ sous android » qui m’a été
assigné fait appel au principal concept de base de données géographiques pour
terminaux mobiles android. Le cas sur lequel s’appliquera notre étude est la
plateforme « SpatiaLite » qui est une base de données géographique. Il serait
difficile pour nous de parcourir tous les aspects liés à cette plateforme, néanmoins
cette présente étude nous permettra de nous appesantir sur les concepts, les
fondamentaux et quelques cas d’exemples d’utilisations de cette plateforme avec
Android.
4
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
1. Contexte et justificatifs
1.1. Contexte
Le monde en quelques décennies s’est transformé en un réel village
planétaire, cette tournure souvent utilisée pour montrer combien est devenu
importante l’avancée des télécommunications et des TICs dans notre ère, le sera
encore et encore, quand on sait que c’est l’association des deux sciences suscitées
qui nous permet aujourd’hui d’être plus que jamais interconnecté.
Les ordinateurs de bureau et ordinateurs portables sont entrain être
supplantés par les terminaux mobiles de plus en plus prisés dans les domaines des
sciences aussi. Ceci étant dû d’une part par leur architecture matériel miniaturisée,
facile à transporter de plus en plus sophistiquée et d’autre part aux applications
informatiques regroupant intelligence, interopérabilité et facilité d’utilisation qui y sont
intégrées.
Les domaines des sciences se rattachant aux Systèmes d’Information
Géographique, gagneraient grandement à s’associer ou à se lier davantage aux
technologies des terminaux mobiles afin d’optimiser ses rendements. Il est plus aisé
par exemple d’effectuer des opérations de collectes d’informations géographiques
dans des zones difficiles d’accès ou enclavées (absence de connexion internet) avec
un terminal mobile plutôt qu’avec un ordinateur de bureau.
Dans le domaine des SIG, les équipements mobiles et les applications jouent
aussi un rôle déterminant pour la consultation rapide des informations (données
météo, Affichage des cartes avec google API, identification des zones, mise à jours
des données etc…).
Ainsi survient donc la nécessité de stockage de l’information géographique
collectée à l’aide d’un terminal, et donc la communication entre le système
d’exploitation du terminal et la base de données distante.
5
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
Il sera donc question pour nous d’étudier la base de données géographique
« SpatiaLite », son fonctionnement et ses interactions avec le système d’exploitation
pour terminaux mobiles « Android ».
1.2. Justificatifs
Notre étude est bien justifiée car l’on observe une utilisation croissante des
technologies des terminaux mobiles en ce qui concerne la collecte et le stockage de
l’information géographique aujourd’hui, car aisément et facilement manipulable et
transportable dans des zones géographiquement enclavées par exemple.
L’étude est aussi justifiée parce qu’elle repose sur le système d’exploitation
pour terminaux mobile le plus répandu et le plus utilisé dans le monde : le système
« Android ». En outre la plateforme « SpatiaLite » est très utilisée et appréciée car
opensource, très légère et facile d’utilisation.
6
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
2. Les concepts
2.1. Les concepts
Géographique
dans
les
Système
d’Information
2.1.1. Géomatique
La géomatique est l'ensemble des techniques de traitement informatique des
données géographiques. Elle regroupe donc les outils et méthodes permettant
l'acquisition, le stockage, le traitement et la diffusion de données à référence
spatiale.
2.1.2. Système d’Information Géographique (SIG)
Un Système d’Information Géographique est un système permettant de gérer
des informations localisées géographiquement. Il est composé des données,
logiciels, matériels informatique, savoir-faire et utilisateurs.
2.1.3. Données dans les SIG
On distingue généralement deux grands types de données dans les SIG :
vecteur et raster.
-
Les données vecteurs : se définissent uniquement par des coordonnées.
On trouvera des données vecteurs de type point, ligne et polygone. Un
point sera défini par un couple de coordonnées XY, une ligne ou un
polygone par les coordonnées de leurs sommets. Une couche vecteur sera
soit de type point, soit de type ligne, soit de type polygone, mais ne pourra
contenir de données de deux types différents (sauf dans le cas particuliers
de certains formats).
-
Les données rasters : ou images, sont constituées de pixels. En zoomant
sur un raster, on finit par distinguer les pixels. Chaque pixel possède une
valeur correspondant par exemple à sa couleur, ou à son altitude. Un
raster est caractérisé par la taille d'un pixel, ou résolution.
7
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
2.1.4. Les formats de données SIG
Les données géographiques peuvent bien aussi être stockées dans les
fichiers, ceci est une alternative aux bases de données géographiques.
Les formats de données ou de fichiers utilisés dans les SIG sont rangés en
plusieurs catégories, les plus usités sont les formats vectoriels et raster.
 Exemple de formats vecteur :
-
Shapefile : devenu un standard de facto, il a été créé par ESRI et utilise 3
types de fichiers (shp, shx, dbf) pour un jeu de données unique. Plusieurs
utilitaires existent pour l’exportation des fichiers shape vers des bases de
données géographiques comme PostGreSQL/PostGis.
-
Mapinfo : utilise les fichiers TAB, DAT, ID et MAP
-
Drawing eXchange Format (DXF) : utilisé par les logiciels AutoCAD
-
Keyhole Markup Language (KML) : Utilisé par Google
 Exemple de formats raster :
-
GeoTIFF : format TIFF enrichie avec des métadonnées relatives au SIG
-
JPEG2000 : format compressé, permettant une compression avec ou sans
perte
-
ESRI grid : fichier binaire ou ASCII utilisé par ESRI
2.2. Les concepts dans les bases de données
2.2.1. Base de données
Une base de données est un ensemble structuré et organisé permettant le
stockage d’une grande quantité d’information afin d’en faciliter l’exploitation (ajout,
mise à jour, recherche de données).
2.2.2. Système de Gestion de Base de Données (SGBD)
Un Système de Gestion de Base de Données est un ensemble de
programmes qui permettent la gestion et l’accès à une base de données. Il héberge
généralement plusieurs bases de données, qui sont destinées à des logiciels ou des
thématiques différentes.
8
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
2.2.3. Base de données géographiques ou spatiales
Ce sont des bases de données qui vont permettre le stockage et la
manipulation des objets spatiaux comme les autres objets de la base de données
2.2.4. SQLite et SpatiaLite
Commençons tout d'abord par SpatiaLite qui permet au moteur SQLite de
gérer les objets spatiaux (comparable à posgis pour postgresql). Le moteur SGBD
SQLite, remarquable par sa taille (le code précompilé pèse entre 200 et 600 Ko) l'est
également par son mode de fonctionnement. En effet, ce dernier ne se base pas sur
l'habituel paradigme client/serveur mais sur une bibliothèque de fonctions
directement appelées par l'application. Ses caractéristiques qui en font la base de
données idéale pour les applications légères embarquées ont déjà séduit des grands
noms de l'informatique tels que Google, Adobe ou encore Mozilla.
SpatiaLite est donc l'extension spatiale de SQLite. Il est conforme à la norme
OGC-SFS (Open Geospatial Consortium - Simple Feature SQL).
Ainsi, à l'heure du "tout spatial", il était obligatoire pour une bibliothèque de
cette qualité de gérer les objets géographiques. Gestion qui, comme nous l'avons vu
précédemment, est assurée par SpatiaLite.
2.3. Les concepts des systèmes d’exploitations mobiles
Un équipement mobile ne peut fonctionner sans systèmes d'exploitation ou
programmes applicatifs pour mobiles (SE), d’où la nécessité de développer des
applications
mobiles
orientées
besoins
telles
que
:
une
application
de
géolocalisation, une application de gestion, etc...
Actuellement, dans le monde du développement mobile, la quasi-totalité des
équipements mobiles fonctionnent sous un OS appelé Android (Operating Systems
en anglais ou Système d’Exploitation).
L’existence d’Android comme système d’exploitation pour terminaux mobiles
offre un intérêt immense, particulièrement pour les fournisseurs, les développeurs
mais aussi pour les éditeurs d’application pour terminaux mobiles.
9
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
A l’instar d’Android il existe plusieurs autres systèmes d’exploitation pour les
terminaux mobiles notamment :
-
Windows Mobile
-
Palm OS
-
Windows CE
-
Windows Phone
-
Windows mobile 5 et 6
-
iOS/iPhone/iPad
10
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
3. Etat de l’art
Les bases de données géographiques qui servent typiquement à la sauvegarde
d’information collectées à partir de terminaux mobiles observent aujourd’hui un essor
fulgurant. Ceci n’étonne personne quand on voit la vitesse avec laquelle les
technologies mobiles croissent et s’implantent dans tous les secteurs d’activités
majeurs. SpatiaLite n’est donc pas la seule base de données de ce genre, qui est
spécialement adaptés pour une application mobile de par ses caractéristiques,
notamment légèreté, simplicité et portabilité.
SpatiaLite peut être déployé sous des environnements mobiles Android et iOS.
Ci-dessous sont listées quelques autres bases de données spatiales adaptées
spécialement pour un fonctionnement sous terminaux mobiles :
3.1. Route-Me
C’est une base de données géographique fonctionnant essentiellement sous
les environnements iPhone et iPad, adaptés pour les petites cartes permettant
afficher les tuiles.
3.2. CouchBase Mobile
C’est une base de données spatiale pour terminaux mobiles aussi, elle
fonctionne sous les environnements Android et iOS.
3.3. ArcGIS for Smartphones SDK
C’est la plateforme ArcGIS servant à la création des applications
géographiques mobiles sous Android et iOS, elle englobe la base de données
géographique et toutes les autres librairies nécessaires.
3.4. Cloudmade SDK
Fonctionnant dans les environnements Android et iOS aussi, c’est une base
de données spatiale disposant de ses propres couches avec quelques petites
options de personnalisation.
11
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
3.5. gvSIG Mobile
C’est un moteur SGBD spatiale recent, fonctionnant actuellement sous
environnement Android. Sa portion iOS étant encore en plein développement.
12
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
4. Etude de cas
Dans cette étude de cas nous allons vous présenter à l’aide de simples petits
exemples le processus de création d’une base de données SpatiaLite, l’intégration
de spatiaLite sous un projet Android, la connexion entre l’application et la base de
données géographique créée et quelques exemples de méthodes de requêtes
spatiales sous Android.
4.1. Création d’une base de donnée SpatiaLite
Tout d'abord, téléchargez le logiciel spatialite_gui : un petit utilitaire
graphique simple mais puissant pour gérer les bases de données SpatiaLite. La
dernière version en date (Janvier 2011) est v.2.4.0-RC4, vous trouverez les logiciels
ici : http://www.gaia-gis.it/spatialite-2.4.0-4/spatialite_gui-win-x86-1.4.0.zip .
Ensuite, télécharger les Shapefiles que l’on va intégrer dans la base de
données à l’adresse: http://data.biogeo.ucdavis.edu/data/gadm2.7/shp/CMR_adm.zip
Après avoir téléchargé, ouvert et exécuté l’archive spatialite_gui-win-x861.4.0.zip, nous allons créer notre fichier de base de données spatiale à partir des
fichiers shape du Cameroun. Pour ce faire, allons dans file et cliquons sur « Creatins
et new (empty) SQLite DB ou sur l’icône correspondante.
13
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
14
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
Comme vous le constatez, juste après sa création, la BDD contient déjà
plusieurs tables: ce sont des tables système (metatables), c’est à dire nécessaires au
fonctionnement de votre base de données. Pour l'instant, nous allons les ignorer.
Nous voilà maintenant connecté à une BDD valide. Nous allons donc charger
(insérer) le premier jeu de donnée: Nous allons cliquer sur le bouton Virtual Shapefile
et sélectionner le fichier CMR_adm2.shp.
Une boîte de dialogue apparaît : et rempli exactement les paramètres comme
sur l'image ci-dessus.
Notre base de données devrait ressembler à ceci :
15
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
Pour finaliser la création de la base de données, allons sur le bouton : Virtual
CSV/TXT
Quelques exemples de requêtes :
16
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
.
17
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
4.2. Intégration de SpatiaLite sous un projet Android
Premièrement on va télécharger les bibliothèques. Elles peuvent être
téléchargées
à
partir
de
ce
lien :
http://www.gaia-gis.it/gaia-sins/spatialite-
android/spatialite-for-android-3.0.1.zip.
L’archive téléchargée contient 2 éléments de base nécessaires pour permettre
à un projet d’utiliser SpatiaLite :
-
les bibliothèques SpatiaLite natives : elles sont placées dans un dossier
nommé libs et contient plusieurs dossiers pour différentes plates-formes
qui détiennent la bibliothèque principale, appelée libspatialite.so
-
les classes de l'API de base, contenues dans le paquet jsqlite.
Utilisons maintenant l’assistant Android Studio de nouveau projet pour créer
un exemple de projet pour Android. Il nous génère une application Android prêt à
être utiliser qui montre une belle vue avec Bonjour tout le monde en affichage.
Une fois que le projet peut être exécuté, nous pouvons commencer à ajouter
la partie spatiaLite.
La première étape consiste à copier les principales composantes des
bibliothèques SpatiaLite mentionné précédemment dans notre projet Android.
- copier les bibliothèques natives dans la racine du projet Android
nouvellement créé
- copier le package java de l'API de base dans le dossier source de votre
nouveau projet.
Et voilà, les fonctions spatiales SpatiaLite de notre projet sont déjà activées.
Faisons quelques trucs de base avec ces fonctions.
4.3. Connexion de
Cameroun.sqlite
notre
En
à
effet,
cela
consiste
projet
l’ouverture
de
Android
cette
base
à
la
de
BDD
données
(Cameroun.sqlite) spatiale dans notre projet.
Le code de la méthode sous Android qui permet d’effectuer cette connexion
est la suivante :
18
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
try {
File sdcardDir = "E:/"; // le chemin du disque
File spatialDbFile = new File(sdcardDir, "cameroun.sqlite");
db = new jsqlite.Database();
db.open(spatialDbFile.getAbsolutePath(),
jsqlite.Constants.SQLITE_OPEN_READWRITE
| jsqlite.Constants.SQLITE_OPEN_CREATE);
} catch (Exception e) {
e.printStackTrace();
}
4.4. Quelques exemples de méthode de requêtes spatiales
sous Android
-
code d’une méthode Android permettant de donner la version du
SpatiaLite utilisée :
public String queryVersions() throws Exception {
StringBuilder sb = new StringBuilder();
sb.append("Check versions...\n");
Stmt stmt01 = db.prepare("SELECT spatialite_version();");
if (stmt01.step()) {
sb.append("\t").append("SPATIALITE_VERSION: " +
stmt01.column_string(0));
sb.append("\n");
}
stmt01 = db.prepare("SELECT proj4_version();");
if (stmt01.step()) {
sb.append("\t").append("PROJ4_VERSION: " +
stmt01.column_string(0));
sb.append("\n");
}
stmt01 = db.prepare("SELECT geos_version();");
if (stmt01.step()) {
sb.append("\t").append("GEOS_VERSION: " +
stmt01.column_string(0));
sb.append("\n");
}
stmt01.close();
sb.append("Done...\n");
return sb.toString();
}
19
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
-
code d’une méthode utilisant la fonction ST_Area de SpatiaLite, cette
fonction permet de donner la somme des surfaces des géométries :
public String queryCamerounArea() {
sb.append(SEP);
sb.append("Requête des sommes des aires...\n");
String query = "SELECT ST_Area(Geometry) / 1000000.0 from CMR_adm2"
+
//
";";
sb.append("Execute query: ").append(query).append("\n");
try {
Stmt stmt = db.prepare(query);
double totalArea = 0;
while( stmt.step() ) {
double area = stmt.column_double(0);
totalArea = totalArea + area;
}
sb.append("\Aire total : ").append(totalArea).append("Km2\n");
stmt.close();
} catch (Exception e) {
e.printStackTrace();
sb.append(ERROR).append(e.getLocalizedMessage()).append("\n");
}
sb.append("Fait...\n");
return sb.toString();
}
20
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
CONCLUSION
Les possibilités de SpatiaLite sont énormes, notre étude aurait pu s’étendre
sur des choses encore plus complexes. Cette étude nous a tout de même permis
d’appréhender de concepts nouveaux sur les bases de données géographiques pour
les terminaux mobiles, d’explorer quelques fonctionnalités de SpatiaLite et de
présenter son processus d’intégration sous le système mobile Android.
21
Etude de la plateforme opensource ‘’spatialite’’ sous android
TCHAKO NGANGUE Gilles Bertrand
BIBLIOGRAPHIE
-
SQL-Bases de données : Maîtrise d'ouvrage : MEDDE - METL - MAAF /
Maîtrise d'oeuvre : ENTE Aix - ENSG / Licence ouverte ETALAB
-
Spatialite-gui a GUI tool to manage SQLite and SpatiaLite databases
-
spatialite_gui 1.4.0 release notes
-
spatialite_gui-1.4.1 libspatialite v.2.4.0-RC5 Experimental UPDATE
-
spatialite_gui v.1.5.0 a quick tutorial
-
Spatialite-Cookbook
WEBOGRAPHIE
-
http://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/first-spatial.html
-
https://www.gaia-gis.it
-
http://www.opengeospatial.org/standards/sfs
-
https://bitbucket.org/moovida/spatialite-android-example/
22
Etude de la plateforme opensource ‘’spatialite’’ sous android