vendredi 28 janvier 2022

Sauvegarde des tracés de TRVQC dans un fichier

Trajet Route Verte QC (TRVQC) permet maintenant de sauvegarder ses tracés dans un fichier. Contrairement à la sauvegarde dans l'élément Local Storage du navigateur, la sauvegarde dans un fichier offre plus de flexibilité au niveau de la portabilité et de l'utilisation. En effet, il devient maintenant possible de partager facilement les trajets de TRVQC avec d'autres personnes ou de les réutiliser sur des ordinateurs différents.

En corolaire, l'application permet de charger un tracé sauvegardé dans un fichier, sur la carte de la Route Verte de TRVQC.


La sauvegarde dans un fichier est réalisée en utilisant un data layer temporaire dans lequel est versé une copie de tous les segments sélectionnés sans les géométries, à l'exception des segments dessinés par l'utilisateur. Ce data layer est ensuite exporté au format GeoJson puis converti (stringnify) en une chaine de caractères. Cette chaine de caractères devient le contenu du fichier exporté. Restait à le compresser. Merci à la librairie PAKO de Vitaly Purzin trouvé sur Internet qui permet de réaliser cette opération facilement.

Le fichier est téléversé dans le répertoire dédié au téléchargement comme pour n'importe lequel fichier téléchargé depuis internet. Le chargement d'un fichier effectue l'opération inverse. Une fois chargé, le fichier est décompressé en mémoire et chargé dans un data layer temporaire. Le data layer est passé en revue et l'application sélectionne tous les segments présents dans le data layer de la Route Verte. Les segments ajoutés par l'utilisateur quant à eux, sont recréés dans le data layer de la Route Verte.

La sauvegarde d'un trajet est basé sur les identifiants des segments de la couche de la Route Verte. Par conséquent, une nouvelle version de la couche de la Route Verte disqualifierait automatiquement toutes les sauvegardes réalisées. Pour palier à cette lacune, l'application offre la possibilité de redémarrer avec la couche de la Route Verte utilisée lors de la sauvegarde.