Si vous avez une montre Garmin et que vous utilisez un vélo partagé à Montréal ou ailleurs, cette application est pour vous!
Grâce à ce widget:
- Visualisez les disponibilités de vélos, vélos électriques et emplacements.
- Naviguez(*) à l’aide de votre montre pour localiser une station ou un véhicule en libre accès!
Pratique lorsque vous êtes en balade ou en fin d’entraînement perdu sans savoir comment rentrer et qu’il n’est pas facile de sortir votre téléphone de votre poche.
Disponible à cette adresse: https://apps.garmin.com/en-US/search?q=bixi&device=&deviceLimit=&appType=&sort=&start=0&count=30
Liste des villes de vélos partagés prises en charge au 16 aout 2022 (v1.0.14 ou plus): ici
(*) La navigation est en expérimentation. Elle doit bien fonctionner pour les montres ayant une boussole. Pour les autres, l’orientation fournie par le GPS n’est pas fiable dans la plupart des cas. Voir la section Navigation.
Description:
L’application présente les informations sur l’emplacement et son status (nombre de disponibilités). En mode navigation, une boussole s’affiche avec les 4 points cardinaux.
Le point blanc situé à midi sur la montre correspond à votre direction.
La flèche verte est l’orientation vers la station ou véhicule visé.
Attention, en mode Navigation, le GPS est activé en permanence et donc il puisse sur votre autonomie. Penser à désactiver lorsque vous serez bien orienté. De plus, la navigation fonctionne pleinement si votre montre possède une boussole.
Comment ça marche ?
La montre pour connecter Internet, à besoin de votre téléphone et de l’application Garmin. Cette application Garmin joue le rôle de proxy (intermédiaire) entre la montre et Internet.
Le service de vélo que vous utilisez doit être :
- soit au format GBFS (voir la liste ici: https://github.com/NABSA/gbfs/blob/master/systems.csv)
- soit utiliser l’API de Citi Bikes (http://api.citybik.es/v2/networks?fields=id,gbfs_href,location,company,name).
Pour commencer, vous devez sélectionner la ville et le fournisseur de vélo.
La liste des stations n’est pas gérable directement par votre montre. Elle n’a pas assez de mémoire. Il est donc nécessaire s’appuyer sur un service intermédiaire qui fait le travail pour elle. C’est là où j’interviens (Api sur Serveur Perso)!
Mon service (API) est déployé sur un de mes serveurs. Avec votre position, que votre montre doit partager à mon service, le service détermine les 10 stations les plus proches et envoie la liste à la montre. Par exemple, voici les données reçus par votre montre:
A noter que mes logs conservent votre adresse IP de connexion, votre position à une date donnée. Ces informations ne sont utilisées que pour des fins opérationnels de bon fonctionnement. Ces données ne sont pas exploitées / vendues / données ou autres. Par exemple, voici le log d’accès:
N’hésitez pas à me contacter si votre montre n’est pas supporté ou que vous avez une question!
Navigation
L’orientation est normalement fournie par une boussole. Toutes les montres Garmin n’ont pas ce composant, la mienne en premier!
En théorie, si on considère deux points pris à deux instants différents, comme chaque point est positionné par sa longitude et latitude, on peut parvenir à définir l’orientation avec le Nord (voir: http://mwlandry.ca/famille/etudes/calcul_distance.htm). En pratique, si on utilise un GPS, il faut prendre en compte que le GPS fournit une position à 10m près et le problème se corse.
Enfin, dans son SDK, Garmin se sert du GPS pour fournir l’orientation. On ne sait rien de comment Garmin fait pour obtenir l’orientation. Donc revenons à la base.
Illustrons le problème:
On prend deux points A et B. Ils sont séparés par une distance (d). En théorie, l’orientation dans notre repère serait alpha.
En pratique, la position de A et B est connue à un delta près. On visualise l’erreur par un cercle limite. Le point A ou B est nécessairement à l’intérieur de ce cercle.
De là, on voit (de façon simpliste) que l’angle Alpha pourrait varier entre Beta et Epsilon.
Donc, on cherche l’angle des deux tangentes intérieurs au cercle
Méthode – Éloigner A et B
La « méthode » consiste à prendre deux mesures GPS en deux points éloignés, en tenant une direction connue. Ansi l’angle entre notre direction véritable et la tangente s’aplatit! L’orientation de déplacement obtenue sera précise à 5° près si on s’éloigne de 200m.
=> En milieu urbain, par exemple à Montréal, il faut remonter 2 blocs pour avoir cette précision. Avec 1 bloc (100m), la précision est de 12° si le GPS est précis à 10m.
=> En pleine nature, ça prend 2 points éloignés et visibles l’un de l’autre afin de retrouver le Nord!
Voici le tableau des erreurs sur l’angle de direction suivant la précision GPS et la distance entre vos mesures:
Erreur GPS (m) | 10 | 8 | 6 | 4 | 2 | 0 |
Distance entre les mesures | Erreur Direction avec 10m d’erreur sur le GPS | Erreur Direction avec 8m d’erreur sur le GPS | Erreur Direction avec 6m d’erreur sur le GPS | Erreur Direction avec 4m d’erreur sur le GPS | Erreur Direction avec 2m d’erreur sur le GPS | Erreur Direction avec 0m d’erreur sur le GPS |
20 | 90,00 | 53,13 | 36,87 | 23,58 | 11,54 | 0,00 |
40 | 30,00 | 23,58 | 17,46 | 11,54 | 5,74 | 0,00 |
60 | 19,47 | 15,47 | 11,54 | 7,66 | 3,82 | 0,00 |
80 | 14,48 | 11,54 | 8,63 | 5,74 | 2,87 | 0,00 |
100 | 11,54 | 9,21 | 6,89 | 4,59 | 2,29 | 0,00 |
120 | 9,59 | 7,66 | 5,74 | 3,82 | 1,91 | 0,00 |
140 | 8,21 | 6,56 | 4,92 | 3,28 | 1,64 | 0,00 |
160 | 7,18 | 5,74 | 4,30 | 2,87 | 1,43 | 0,00 |
180 | 6,38 | 5,10 | 3,82 | 2,55 | 1,27 | 0,00 |
200 | 5,74 | 4,59 | 3,44 | 2,29 | 1,15 | 0,00 |
220 | 5,22 | 4,17 | 3,13 | 2,08 | 1,04 | 0,00 |
240 | 4,78 | 3,82 | 2,87 | 1,91 | 0,95 | 0,00 |
260 | 4,41 | 3,53 | 2,65 | 1,76 | 0,88 | 0,00 |
280 | 4,10 | 3,28 | 2,46 | 1,64 | 0,82 | 0,00 |
300 | 3,82 | 3,06 | 2,29 | 1,53 | 0,76 | 0,00 |
320 | 3,58 | 2,87 | 2,15 | 1,43 | 0,72 | 0,00 |
340 | 3,37 | 2,70 | 2,02 | 1,35 | 0,67 | 0,00 |
360 | 3,18 | 2,55 | 1,91 | 1,27 | 0,64 | 0,00 |
380 | 3,02 | 2,41 | 1,81 | 1,21 | 0,60 | 0,00 |
400 | 2,87 | 2,29 | 1,72 | 1,15 | 0,57 | 0,00 |
420 | 2,73 | 2,18 | 1,64 | 1,09 | 0,55 | 0,00 |
440 | 2,61 | 2,08 | 1,56 | 1,04 | 0,52 | 0,00 |
Autre méthode
On cherche!
SDK Garmin – Problème mémoire sur les chargements de menu
Certaines montres (FR55, FR245….) n’ont pas de mémoire suffisante pour simplement charger un menu un peu complexe ou pas!
Si on utilise l’ancien type Menu, on a une limite de 16 items par liste => Difficile de charger une liste de Pays.
Si on utilise le type Menu2, chaque item coute au moins 400octets de mémoires. Sachant qu’on en a peu, on est mort.
Donc les pistes:
- Proposer à l’utilisateur de saisir les premières lettres de sa ville et lui remonter un choix parmi au plus 5…
- Utiliser la localisation pour lui proposer sa ville…