Google Maps dans l’iPhone

Je n’ai pas rencontré ce problème dans le peu de développement que j’ai fait pour l’iPhone mais intégrer un service de cartographie n’est pas aussi facile que sur un site internet. Vous avez d’un côté les capacités de “touch” de l’iPhone qui permettent de naviguer autrement dans la carte et d’un autre les fournisseurs de cartes (Google,Microsoft,Yahoo!) proposent “seulement” des widgets à destination de navigateurs “classiques”. Voici quelques exemples :

l'application velo
l'application velo

L’application “Vélo” permet de connaître les stations Vélo Toulouse à proximité de sa position. Une carte s’affiche, mais ce n’est pas le client embarqué dans l’OS, c’est une fenêtre Safari qui le reproduit. Et cela se sent car les gestes de navigation ne sont pas gérés de façon aussi souple que dans l’application native. En fait ils ont sans doute utilisé une bibliothèque qui “traduit” les événements de webkit “iPhone” de type “gesture” vers un JavaScript qui déplace la carte.

Une autre application, aBikeNow, affiche une carte mais sans possibilité de déplacement, ce qui n’est pas très aisé. Et le clic sur une station ouvre une autre fenêtre au lieu de rester sur la carte avec le panneau d’information qu’on connaît d’habitude.

les résultats
les résultats
![l’application “abikenow”](/import/IMG_0008_thumb.png “l’application “abikenow”")

Il y a d’autres solutions, TripAvisor avec LocalPick (retrouver des restaurants) , semble utiliser un composant beaucoup plus optimisé car la navigation est très fluide :

liste des résultats de localpicks
liste des résultats de localpicks
 
la carte de localpicks
la carte de localpicks

Enfin Orange a choisi d’utiliser le client natif mais en affichant toutes les positions. En effet l’api du client Google Maps permet de demander un itinéraire ou de montrer des coordonnées mais pour un ensemble de points ce n’est pas possible, à part en passant par un fichier KML. Orange propose une application pour repérer les hotspots wifi à proximité. Après avoir affiché la liste, un bouton permet de consulter la carte. Jusque là tout est normal mais l’ouverture de l’application native avec un lien vers un serveur renvoyant une liste de KML est un choix judicieux, cela permet d’avoir les fonctionnalité de ce client et d’afficher de l’information. Une limite toutefois : on ne peut détailler l’information, en effet je n’ai pas vu la possibilité d’ajouter de l’information sur les “pins” affichés, à part dans le titre.

résultats de l'application hotspot finder
résultats de l'application hotspot finder
la carte
la carte
IMG_0011
IMG_0011

Sur le troisième écran on voit que le KML est généré sur un serveur, ce qui est ajoute une contraite pour le développeur d’une application “native” : devoir gérer un serveur …

Il existe encore une autre possibilité : utiliser un service de cartographie qui propose une autre interface que le web comme VirtualEarth de Microsoft. Cette plate-forme propose un accès SOAP en plus des accès AJAX classiques ce qui permettrait de développer un client qui se base sur les tiles renvoyés … On retombe là sur un développement plus ambitieux puisqu’on redéveloppe un client “natif”.

billet publié dans les rubriques coding le