4
20 déc 2010

iphone_logo.pngLe développement sur smartphone devient incontournable. CampToCamp accélère le développement d'une version compatible smartphone ou tablette d'OpenLayers, en gérant les interactions avec l'écran tactile. Le W3C a publié récemment les bonnes pratiques de développement de web applications pour les smartphones : en effet, devant l'extrême hétérogénéité des OS smartphones, il devient quasiment impossible pour les développeurs de déployer une application pour tout le monde. C'est là qu'intervient les web applications au travers du HTML5 : le navigateur devenant l'entrée applicative, celui-ci pouvant interagir avec des composants de plus en nombreux du smartphone - GPS, gyroscope, HTML storage, ...


iphone.pngNous publiions au début de l'année un petit article sur les différents développements possibles pour des applications mobiles : selon moi les web applications semblent en passe de gagner la partie. Les navigateurs embarqués sur les smartphones commencent à supporter l'interaction avec les capacités physiques de l'appareil. C'est ainsi que nous avons codé une petite webapp disponible sur iOS 4.2 qui permet d'utiliser les données des accéléromètres pour se mouvoir sur la carte :-)

On pivote à droite, ça bouge la carte vers l'ouest ; on pivote vers le haut, on déplace la carte vers le nord, etc.
Les axes pour les accéléromètres sont ceux-ci : l'axe Y pour un déplacement est-ouest, l'axe X pour un déplacement nord-sud.

Pour cela, nous avons utilisé l'API Google Maps v3 et le framework Sencha Touch. Le framework n'est pas nécessaire pour utiliser l'accéléromètre de Safari iOS 4.2.
Pardon pour ceux d'entre-vous qui ne possèdent pas d'iPhone et encore moins l'iOS 4.2, je n'ai pas réussi à faire une vidéo avec la gestion de l'accéléromètre dans le Simulateur de XCode.

Au fait, n'ayant pas d'Android sous la main, il paraîtrait que ça marche aussi avec le browser de Froyo ... tous les retours sont les bienvenus.


Flashouillez le QR code pour aller sur la page :-) ou sinon l'adresse c'est http://goo.gl/hWenP
iphone.png

A propos de l'auteur: 
GeoTribu

Toute l'actualité de la géomatique Open Source ! Mais aussi des tutoriels, des billets de blog, des tests et surtout une bonne humeur géographique !

Commentaires

bonjour,

savez vous si, dans le cas d'openlayers mobile, il est possible d'afficher des fonds rasters ou vecteurs embarqués sur la carte sd du téléphone pour un usage hors ligne (relevés naturaliste de terrain en montagne).
Pour répondre à ce besoin ,je ne vois que la production d'un service wms en local sur le mobile (serveur web + mapserver ou geoserveur)mais il y a peut-être d'autres solutions que je ne connais pas.

Bonjour Anonyme ;-)
OpenLayers mobile, c'est dans les rails mais va falloir attendre encore quelques semaines (enfin j'imagine).

Afficher un fond raster en provenance de la carte SD du téléphone pour une utilisation hors-ligne : alors là j'en sais rien ... un KML avec un GroundOverlay peut-être ? Mais il faudrait accéder à l'emplacement physique dudit fichier ...

La production d'un service WMS en local sur le mobile ? Euh je doute fortement que MapServer ou GeoServer puisse tourner sur un smartphone ... et c'est pas une solution.

Une piste pour afficher des données raster ou vecteurs : utiliser la capacité LocalStorage - limitée à 5Mo sur iPhone par exemple - et donc charger les données (raster et vecteur) avant de partir sur le terrain.

OpenLayers Mobile devrait avoir la possibilité d'éditer des points donc potentiellement de faire du relevé.

Par contre, pour ce type de besoin en milieu non connecté (pas de 3G), je pense qu'une application dédiée que l'on initialise avant de partir serait plus performante que de passer par une carto via le navigateur du mobile - enfin pour le moment. Remarque c'est un bon challenge !

Merci pour vos réponses. Exit donc le service WMS en local et si je comprends bien pas de solution connue pour accéder à des fonds stockés localement via une appli web.
D'une manière ou d'une autre, une appli web non connecté, cela veux dire un serveur web qui tourne sur le smartphone pour héberger l'application appelée ensuite via localhost depuis le navigateur. Déjà, ça, je ne sais pas trop si c'est possible ???
Ensuite il faudrait qu'Openlayers trouve des images localement via un système équivalent à tilecache.
Arnaud, je ne comprends pas bien ceci : "En rusant un peu cela doit être possible. Imaginons que vous mettiez une architecture semblable à celle produite par tilecache."
Je connais Tilecache mais si je ne me trompe pas, il fonctionne en cgi sur un serveur web. Peut on envisager de l'installer sur un mobile ? Qu'entendez-vous par une "architecture semblable à celle produite par tilecache" ?

Je pense qu'effectivement tout cela n'est peut-être pas encore mûr et qu'il est préférable de passer par une application non web mais dans ce cas on perd l'aspect multiplateforme des applications web et il faut trouver un moteur carto efficace pour gérer un tuilage à différente échelle et qui sait aussi dessiner points lignes et polygones aussi bien qu'Openlayers.
En fait je sais faire du wms avec mapserver, du tilecache et de l'openlayers jusqu'au stockage vers postgis mais je ne connais pas les autres technos des plateformes android, iOS ou même Java pour des développements d'applications cartographiques non connectées. D'où mes recherches de faisabilité avec les applis web que je maitrise, mais je bute sur l'absence de connexion de l'environnement de travail des terminaux.

Concernant le storage du HTML5, les 5Mo sont très insuffisants pour les surfaces que l'on doit couvrir à différentes échelles dont l'orthophoto (pls dizaines de milliers d'hectares).
Merci encore pour vos éclairages.
Gil

En rusant un peu cela doit être possible. Imaginons que vous mettiez une architecture semblable à celle produite par tilecache. OpenLayers ira alors directement chercher dans le dossier d'image.
Sinon, avec l'HTML 5 il y a également la fonctionnalité qui pourrait être utilisée.

Arnaud