Je
navigue depuis une douzaine
d'années sur mes voiliers, principalement en
croisière. A ce jour
je n'ai pas trouvé le logiciel adéquat pour mes
carnets de bord et
journaux de voyage en voilier.
Mon but développer un logiciel
de Voyage basé sur du tracking GPS sur Smartphone
adapté au monde
de la voile, associant photos et commentaires à des
WayPoints sur
une carte et un journal de voyage pouvant être ensuite
exporté et
vu sur le WEB.
Un rapide aperçu, différents supports:
Les
Blogs
J'ai bien un Blog:
http://esperanzavoyage.blogspot.com/
Les cartes Google
Map
Dans ce blog j'ai des liens vers des
cartes Google Map :
https://esperanzavoyage.blogspot.com/p/parcours-du-moment.html
Les albums photo
Dans ce blog j'ai des liens vers des
albums photo :
https://esperanzavoyage.blogspot.com/p/p.html
Les logiciels de voyage tracking sur Smartphone
Findpenguins
https://findpenguins.com/
avec un album de voyage personnel:
https://findpenguins.com/5zv97kazlsbkz/trip/balade-en-grece-janvier-2019
Polarstep https://www.polarsteps.com/
Wikiloc https://fr.wikiloc.com/
exemple itinéraires en voilier:
https://fr.wikiloc.com/itineraires/voile
Les logiciels de voyage sur le Web
TravelMap https://travelmap.net/fr
Là un voyage à bord de mon voilier
Experanza en 2018 https://esperanzasailing.travelmap.net/
Là j'ai du exporter un fichier .kml au
bon format afin d'obtenir le parcours pour ensuite associer des
photos à quelques Waypoints. C'est ce type de
présentation qui me
convient dommage c'est que sur du Web.....
Les Trackers GPS sur Smartphone
Exemple
GeoTracker et il y en
a plein d'autres...
https://play.google.com/store/apps/details?id=geo.tracker&hl=fr
Ces nombreux logiciels permettent
d'enregistrer (souvent en background avec de nombreuses options...)
nos traces GPS et permettent de les exporter en format .GPX ou .KML
pour ensuite revoir nos parcours sur Google Hearth ou sur le Web.
Mais là on sort des logiciels de voyage avec
association de journaux et photos à des waypoints.
Les logiciels de navigation sur Smartphone
Navionics
https://play.google.com/store/apps/details?id=it.navionics.singleAppMarineLakesHD&hl=fr
Sailgrib
WR
https://play.google.com/store/apps/details?id=com.sailgrib_wr&hl=fr
Plein d'autres
Weather4D, QtVlm, SquidMobile etc... tous sont plus
spécialisés
météo ou routage et imcorporent ou non un
tracking GPS.
Là aussi
on sort des logiciels de voyage avec association de journaux et
photos à des waypoints. Ce n'est pas leur but.
Les trackers GPS et les logiciels de navigation sont evidement hors categorie. La plupart des autres logiciels associant tracking GPS et journal de voyage (FindPengins, PolarStep etc...) proposent des options payantes et ne correspondent jamais totalement à mes attentes, étant informaticien et profitant du confinement liée au covid 19, j'en profite pour me lancer dans un petit défi technique, développer le logiciel de voyage en voilier qui me convient.
Le cahier des charges (un peu de technique):
Une
application adaptée
à la voile et à tout voyage basé sur
des
déplacements lents, peu gourmande en ressources et
fonctionnant
hors internet.
La seule spécificité de cette application
concernant la
voile sera la possibilité de voir le parcours sur des cartes
marines (ou sur terre openStreetMap) et générer
des
carnets de bord qui sont obligatoires sur un voilier en cas de
contrôle. (Format papier ou numerique accepté).
Fonctionner
indistinctement sur
Android ou Iphone. Un projet Flutter.
Pour cela, dans mon travail,
développant sur un nouveau Framework fortement
poussé par Google
pour les applications mobiles : Flutter
https://flutter.dev/
je pense que
c'est le framework idéal pour développer
rapidement une petite
application de voyage avec un seul code source ( Dart )
associé à
une compilation Multiplate-forme Android ou Iphone.
Un
tracking GPS en backgroud
adapté à des déplacements lents.
(Voilier ou randonnée, vélo)
peu gourmand en ressources et fonctionnant hors connexion internet.
Dans le projet Flutter, utiliser un
service de géolocalisation le moins gourmand possible,
pouvant
tourner en background même quand l'application est
arrêtée et
pouvant même redémarrer automatiquement
après arrêt du téléphone.
Initialement Utilisation du package
background_fetch :
https://pub.dev/packages/background_fetch
associé au package Geolocator https://pub.dev/packages/geolocator
Le package
backgroud_fetch permet l’exécution d'une tache en
background
toutes les 15 minutes au minimum mais ce timing est suffisant pour
déclencher l'appel d'une géolocalisation (appel
de Geolocator) sur
des déplacements lents. En voilier à une vitesse
de 6 Noeuds cela
permet de générer un waypoint tous les 1,5 Milles
Nautiques (1
Mille Nautique = 1 Km 852 mètres) ce qui est amplement
suffisant
pour le suivi d'un journal de voyage.
Géolocator n'a pas répondu a mes attentes en termes de précision et je me suis finalement orienté vers un package Flutter reposant sur des services GPS natifs Android et Ios https://pub.dev/packages/background_locator. L'utilisation de ce package permet des paramètrages beaucoup plus fins avec une précision accrue: distance minimum entre deux waypoints, fréquences des vaypoints pouvant aller de 5 secondes à plusieurs minutes pour des déplacements lents.
Pour
stocker l'enregistrement des waypoints, des commentaires et images
associées utilisation d'une base de données SQL
Locale Sqlite
autonome qui fonctionne hors connexion internet.
Package
https://pub.dev/packages/sqflite
Cette base de donnée permet de stocker les images avec des
types
BLOB prévus à cet effet.
Pour
restituer les waypoints sur
des cartes gratuites dans l'application et hors connexion internet
utilisation du package flutter_map
https://pub.dev/packages/flutter_map
Ce package permet d'utiliser des cartes
gratuites au format OpenStreetMap ou autres qui pourront être
téléchargées avant le voyage. Ce
package est fortement inspiré de
leaflet https://leafletjs.com/
Pour
restituer des journaux de
voyage publics sur le Web connexion internet et upload de fichiers
json à partir de l'application.
Ces
journaux pourront être vus par des amis ou des personnes
suivant le
voyage, un peu semblables à cela dans la forme:
https://esperanzasailing.travelmap.net/
Ces journaux stockés en local dans l'application dans Sqlite
seront
uploadés sur le web via un une extraction de la base sqlite
au
format json et un upload d'images locales liées au
journal de voyage.
Le
serveur hébergeant le service web de restitution des
journaux et des
cartes sera Google Firebase avec sa partie database pour les objets
json et sa partie storage pour les images.
Une
fois ces fichiers json copiés sur un serveur Web ils
pourront être
exploités ensuite en tant que données json pour une
restitution sur des cartes utilisant la librairie open source
javascript leaflet : https://leafletjs.com/
Afin
de conserver la spécificité des cartes marines
avec leaflet on
pourra utiliser l'api Navionics V2 :
https://webapiv2.navionics.com/examples/5000_LeafletSupport.html
pour une une présentation des cartes du voyage sur le web
plus
adaptée au monde maritime.
Si dans l'application on dispose d'une connexion internet on pourra
donc Exporter nos journaux vers internet pour les rendre public sur le
Web, et aussi les voir via une
WebView intégrée dans l'application.
Pour résumer le cahier des charges: Une application de voyage fonctionnant sur tout smartphone (Android ou Iphone). Dans cette application seul le processus de publication des journaux de voyage sur le web necessite une connexion internet, toutes les autres fonctions: tracking GPS, gestion des journaux et waypoints, ajout des photos et commentaires, consultation des journaux photos et cartes fonctionnent hors internet. Cela me semble important quand on navigue au large dans des contrèes reculées ou dans des pays étrangers où les coûts de connexion peuvent être prohibitifs.