Développement d'un APN géo localisé
Auteur Stéphane Sibué

Cet article fait suite à la conférence que j'ai animé pendant les TechDays 2008. Le sujet de cette conférence était "développement d'une application multimédia pour Windows Mobile". Sujet très vaste, impossible à aborder dans sa globalité en une heure.

J'ai donc décidé de me focaliser sur quelques aspects du développement multimédia en parlant de la prise de photo avec l'appareil photo numérique intégré (APN) et de l'utilisation d'un GPS.

Comme fil conducteur, j'ai développé deux applications. La première, GeoAPN, sous Windows Mobile, permet de prendre des photos géo localisées. La seconde, GeoPhotos, sous Windows PC, permet de visualiser les photos géo localisées prises avec GeoAPN en utilisant les services de Microsoft Virtual Earth.

Ces deux applications ont été développées avec Visual Studio 2008. GeoAPN utilise le SDK Windows Mobile 5 et cible le .NET Compact Framework 3.5. GeoPhotos cible le .NET Framework 3.5 PC

La présentation Power Point de la conférence est disponible ici
Les sources de GeoAPN et GeoPhotos ici
Le programme d'installation de GeoAPN ici
Le programme d'installation de GeoPhotos ici

Pour fonctionner, GeoAPN a besoin du Compact Framework 3.5. Plus d'informations ici

GeoAPN

GeoAPN GeoAPN permet donc de prendre des photos avec un Pocket PC sous Windows Mobile 5 et supérieur. Pendant la prise de vue, le programme est couplé avec un GPS, ce qui permet au final de géo localiser de manière automatique les photos.

Cette application met en œuvre les éléments suivants :

Développement avec VS 2008 pour le .NET Compact Framework 3.5
Utilisation du SDK Windows Mobile 5 Pocket PC
Utilisation de l'APN intégré
Utilisation du contrôle SerialPort pour la communication avec le GPS
Recherche automatique du GPS (quel port série)
Analyse des trames NMEA du GPS pour déterminer la position
Gestion de la mise en veille automatique
Utilisation de la sérialisation XML pour stocker les informations de géo localisation
Capture de boutons matériel avec le contrôle HardwareButton
Affichage à l'écran des photos prises
Création du programme d'installation


Installation de GeoAPN

Pour installer GeoAPN, il vous suffit de télécharger le zip contenant le cab d'installation. De copier le cab d'installation à la racine de votre Pocket PC et de le lancer. Le programme s'installera.

Important : Les photos que vous allez prendre seront stockées dans le dossier "My Documents\GeoAPN". Si le dossier n'existe pas, il sera automatiquement créé par l'application. Dans ce dossier, se trouve aussi le fichier "FakeGPS.txt" qui permet de simuler la présence d'un GPS lorsqu'on fait une démo en intérieur (c'est ce que j'ai utilisé pendant la conférence aux TechDays).

Utilisation de GeoAPN

L'interface de GeoAPN est très simple. C'est très important dans une application Windows Mobile, simplicité = réussite.

L'interface est composée de 6 éléments :

-1- Liste des photos prises (présentes dans le dossier "My Documents\GeoAPN")

Chaque photo possède un menu contextuel.
Vous pouvez afficher, modifier (les infos de géo localisation) ou encore supprimer chaque ligne.

-2- Icône de gestion de d'état du GPS

Lorsque le GPS n'est pas connecté, l'image représente un satellite barré.
Lorsque le GPS est connecté mais qu'il n'est pas encore en mesure de donner une position, l'icône est celle d'un satellite rouge.
Lorsque le GPS est connecté et qu'il donne une position, l'icône est celle d'un satellite vert (comme sur l'image).

Si vous cliquez sur cette icône et que le GPS est connecté, la liste des trames NMEA en cours de réception s'affiche.

-3- Bouton de commande de prise de photo

Vous pouvez prendre une photo en cliquant sur ce bouton ou en utilisant le bouton matériel de prise de photo du Pocket PC.

-4- Accès aux paramètres

Vous pouvez choisir d'utiliser le fichier de simulation du GPS et sélectionner le bouton matériel à utiliser pour prendre une photo (ça change d'un Pocket PC à l'autre).

-5- Bouton d'arrêt (complet) de l'application

-6- Bandeau de titre et de "A propos de..." lorsqu'on clique dessus.

Une fois que le GPS est connecté et qu'il est au vert, vous pouvez prendre toutes les photos que vous voulez.

La prise de photo se fait en utilisant la nouvelle boîte de dialogue standard accessible en utilisant le contrôle CameraCaptureDialog. Pour plus de détails sur l'utilisation de ce contrôle, je vous invite à lire cet article.

La communication avec le GPS s'effectue grâce au contrôle SerialPort. Pour plus de détails sur son utilisation, je vous invite à lire cet article. La classe de gestion du GPS dans GeoAPN est plus puissante que cette décrite dans l'article référencé. Je vous invite donc à consulter aussi les sources de GeoAPN pour plus de détails.

Les données de géo référencement sont stockées dans un fichier XML à coté de la photo elle même. Le programme utilise la sérialisation pour générer ce fichier. Si vous voulez plus d'informations sur cette technique (très puissante) je vous invite à lire cet article et à consulter les sources de GeoAPN.

Je vous invite aussi à lire le document Power Point qui est associé à cet article. Il vous donnera aussi beaucoup d'informations importantes.

GeoPhotos

GeoPhotos GeoPhotos liste les photos prises avec GeoAPN et les affiche sur une carte fournie par le service de cartographie en ligne de Microsoft, Virtual Earth.

Il faut le .NET Framework 3.5 pour l'utiliser.

Cette application met en œuvre les éléments suivants :

Développement avec VS 2008 pour le .NET Framework 3.5
Utilisation de la dé sérialisation XML pour récupérer les informations de géo localisation
Affichage à l'écran des photos prises
Utilisation du WebBrowser
Interaction .NET / JavaScript pour utiliser les services de Virtual Earth
Création du programme d'installation

Les photos sont stockées dans le dossier "Mes Documents\GeoPhotos" de chaque utilisateur.

Le programme d'installation installe en plus du programme une série de photos prises avec GeoAPN vous permettant de tester tout de suite l'application. A vous ensuite d'ajouter vos propres photos en utilisant GeoAPN pour votre propre compte.

Le document Power Point associé à cet article explique comment l'interaction .NET / JavaScript est rendue possible  grâce au contrôle WebBrowser et comment faire pour utiliser les services de Virtual Earth. Il vous donnera aussi les liens pour obtenir plus d'informations sur Virtual Earth et où trouver son SDK.

Grâce à ses quelques explications, et à toutes les sources mises à votre disposition, vous allez très rapidement et très facilement être capable de tirer partie du meilleur de Windows Mobile. Ce système permet de créer des applications extrêmement riches et puissantes avec des outils puissants et d'un apprentissage relativement aisé (Visual Studio). Alors ne vous en privez pas, en ce qui me concerne je mets en œuvre toutes ces technologies chaque jour et depuis des années c'est que du bonheur !

Stéphane Sibué


Développez pour Windows Mobile
Copyright 2001-2008 - Tous droits réservés
Toutes les marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.