Depuis quelques temps une nouvelle API est en développement dans les spécifications : Device Orientation, pour déterminer l’orientation d’un dispositif compatible, comme un smartphone ou une tablette par exemple. J’ai créé Sphoords pour transformer les données récupérées par cette API en des coordonnées sphériques.

L’avantage de Sphoords, c’est qu’elle se veut indépendante du navigateur utilisé, contrairement à l’API elle-même dont l’implémentation diffère par endroits, ce qui est particulièrement gênant.

Sphoords est donc là pour récupérer l’orientation d’un terminal. Avec elle, vous allez pouvoir déterminer vers quel point ce terminal est orienté, pour savoir dans quelle direction il « regarde ».

Sphoords renvoie des coordonnées sphériques, avec les conventions habituelles : une longitude comprise entre 0 et 2π et une latitude comprise entre -π/2 et π/2. Notez que si vous préférez vous avez aussi accès aux coordonnées en degrés.

En ce qui concerne les applications concrètes de Sphoords, j’en fournis pour le moment deux exemples, le premier n’étant autre que la gestion de l’orientation dans Photo Sphere Viewer dont j’ai parlé il n’y a pas très longtemps.

Le second est un exemple fourni avec la librairie elle-même dans le dépôt GitHub et qui m’a principalement servi pour développer la librairie elle-même (parfois, faire les choses à l’envers ça aide). Il est constitué de deux pages web. L’une d’elle doit être affichée sur un terminal compatible avec l’API d’orientation, typiquement votre smartphone. La seconde page peut être affichée n’importe où, sur votre ordinateur par exemple.

Bougez alors votre smartphone avec la page toujours affichée dessus. Et regardez votre ordinateur : c’est magique, ça bouge tout seul. Cet exemple récupère en effet l’orientation de votre smartphone et la retranscrit quasiment en temps réel (petit délai de 100 millisecondes maximum) sur une sphère affichée en 3D. Que vous pouvez donc faire tourner à loisir avec votre souris.

Bon ça sert pas à grand chose à part développer la librairie mais ça reste marrant à essayer.

Comme indiqué sur le dépôt GitHub la librairie n’est pas parfaite. En grande partie à cause du fait que l’API elle-même soit encore en développement : son implémentation est différente selon les navigateurs (du coup on doit détecter le navigateur utilisé, et c’est moche). Ça fonctionne bien sur Firefox pour Android, Chrome et Opera. Pour les autres, difficile à dire.

Bref, vous pouvez retrouver Sphoords sur GitHub, en version 0.1 pour le moment. Je continuerai à la mettre à jour quand j’aurai des idées d’améliorations.