Un meilleur codage peut transformer les cartes en mode hors ligne conçues à l’aide du langage Swift – image

Un meilleur codage peut transformer la manière de visualiser les cartes en mode hors ligne conçues à l’aide du langage Swift

Les utilisateurs font face à de nombreux problèmes au moment d’utiliser les cartes en mode hors ligne. Une méthode plus stratégique en matière de codage peut atténuer ce stress et améliorer les résultats.


En bref

  • L’utilisation des cartes Swift en mode hors ligne peut se révéler difficile.
  • Avoir recours à une nouvelle méthode de codage peut améliorer l’expérience des utilisateurs, maintenir leur mobilisation et renforcer les relations.

Comment intégrer des éléments de visualisation de cartes en mode hors ligne dans votre application mobile

J’ai récemment participé à un projet de modernisation du programme des aires de répartition de la Colombie‑Britannique. Le programme permet d’octroyer et d’administrer des contrats de pâturage et de coupe du foin dans les parcours naturels des terres de la Couronne. Dans le cadre de ce projet, nous avons développé un ensemble d’applications pour iPad et pour le web. Ainsi, les utilisateurs peuvent enregistrer leurs plans d’utilisation des parcours à même l’application.

 

L’un des principaux objectifs de l’application iPad est de permettre aux utilisateurs d’accéder aux plans lorsqu’ils sont hors ligne ou qu’ils n’ont qu’une connexion Internet limitée.

 

Au cours du projet, nous avons entre autres exploré la possibilité d’intégrer une fonction de visualisation de cartes en mode hors ligne. Bien que cette fonction n’ait pas été retenue pour les besoins de la version actuelle de l’application, j’ai cru qu’il serait intéressant de présenter certains des résultats issus de mes recherches à ce sujet.

 

Créer des cartes accessibles en mode hors ligne

Il était presque impossible de trouver des renseignements sur la création de cartes accessibles hors ligne, surtout pour les développer dans un environnement en code source ouvert et sans payer de fournisseurs.

 

Voici ce que j’ai appris :

Toutes les cartes utilisent les mêmes méthodes de normalisation des données, peu importe si elles sont propulsées par Google, Apple, Bing ou OpenStreetMap. Chaque partie de la carte se divise en pavés. Ainsi, lorsque vous effectuez un zoom arrière, la carte ne comporte qu’un seul pavé. Chaque fois que vous effectuez un zoom avant, les pavés se divisent en quadrants.

 

La carte ci-dessous est réduite au maximum et consiste en un seul pavé.

Créer des cartes accessibles en mode hors ligne

La prochaine carte a été agrandie quatre fois, ce qui fait qu’il faut beaucoup plus de tuiles pour représenter la zone géographique :

Créer des cartes accessibles en mode hors ligne en gros plan

Mes recherches portaient sur le développement d’une application iOS, mais vous pouvez développer une application Android et obtenir le même résultat en ayant recours à des outils similaires et en adaptant le code.

Étape 1 : Ajouter MapKit

À l’aide d’un outil comme Xcode d’Apple, ajoutez un élément MapKit en suivant la même marche à suivre que celle que vous suivez pour développer une application iOS.

Étape 2 : Obtenir les pavés de la carte

Remplacez le moteur de rendu de manière à obtenir les pavés directement d’OpenStreetMaps :

Obtenir un pavé de la carte

Étape 3 : Cerner les points d’intérêt

Chaque tuile requiert un espace de stockage d’environ 80 à 100 Ko. Étant donné que l’application MyRangeBC ne porte que sur quelques zones géographiques très précises de la Colombie‑Britannique, je n’ai pas jugé nécessaire d’obtenir les pavés de toutes les régions de la province, car cela aurait nécessité quelques Go de données supplémentaires. Ce faisant, j’ai choisi de calculer la longitude et la latitude des points d’intérêt seulement.

Étant donné que l’application MyRangeBC sert surtout à visualiser les zones de pâturages et d’autres zones similaires, j’ai également conclu que seules les données liées à certaines tuiles en plan éloigné seraient requises. De manière générale, nous n’aurons pas à agrandir la carte jusqu’à en apercevoir les rues pour visualiser les points d’intérêts.

Étape 4 : Convertir les latitudes et longitudes relatives aux points d’intérêt

Chaque pavé possède une valeur X, Y et Z unique. La valeur Z représente le niveau d’agrandissement de la carte, tandis que les valeurs X et Y désignent un pavé en particulier. Pour que l’application repère le bon pavé, vous devrez convertir les données liées à sa latitude et à sa longitude dans le schéma X, Y et Z à l’aide du code ci‑dessous :

Convertir les données de latitude et de longitude relatives aux points d’intérêt

Si vous connaissez déjà le nombre de pavés requis, vous pourrez facilement déterminer l’espace de stockage de votre carte en mode hors ligne. Il suffit de prendre le nombre total de pavés et de le multiplier par 100 Ko.

Étape 5 : Télécharger ou stocker les pavés de la carte dans la mémoire cache

Ensuite, vous devez vous assurer que les pavés de la carte soient accessibles dès le lancement de l’application.

Télécharger ou stocker les pavés de la carte dans la mémoire cache

À l’aide d’un code, vous pouvez également vérifier qu’ils ont bien été téléchargés au préalable.

Télécharger ou stocker les pavés de la carte dans la mémoire cache

Assurez-vous que les pavés de la carte soient stockés en format PNG et tous nommés d’une façon conséquente afin de pouvoir les récupérer facilement à l’étape 2 (p. ex., pavé-x-y-z.png).

Bien que nous n’ayons pas intégré ce code dans la version actuelle de l’application MyRangeBC, nous nous y emploierons certainement dans les versions ultérieures. Je crois que la fonction de téléchargement des pavés de la carte s’avérera particulièrement utile pour les gardes forestiers qui se trouvent dans des zones géographiques sans connexion Internet.

Résumé

En rendant plus convivial le processus d’utilisation des cartes en mode hors ligne conçues avec Swift pour les utilisateurs, vous pourrez bonifier l’expérience de ceux‑ci et maintenir leur mobilisation. Adoptez une méthode différente de codage pour exploiter ces possibilités dès maintenant.

À propos de cet article