Décode l'informatique
Afficher une position déterminée

Afficher une carte géolocalisée avec Power Apps

L’objectif de cet exercice est d’afficher une carte de Microsoft Bing géolocalisée.

Si vous ne voyez rien durant l’exercice, faites des tests avec l’application Power Apps Mobile. Sur un poste de travail, le navigateur Chrome semble mieux fonctionner.

Pour vous aider, regardez la copie d’écran ci-dessous qui présente un des deux résultats attendus.

Premier résultat attendu
Premier résultat attendu

Obtenir une clé Bing Maps

Pour afficher un emplacement géographique sous forme d’une carte Bing Maps dans PowerApps, vous devez récupérer une clé d’API chez Microsoft. Elle est obligatoire.

Cette clé est un identifiant unique, qui est générée à partir de votre compte Microsoft. Selon son usage, vous avez le droit à un certain nombre d’appels de l’API Bing Maps.

Voilà à quoi ressemble une clé d’API.

Attention la clé ci-dessous est fausse (elle n’existe pas) et elle ne peut pas être utilisée.

AvyDgx0hxBPCWNLJuBPzJ2oK0yCr7tuhzVEdF3fPnIwJEC8CqrUuMV

L’utilisation de la clé est expliquée dans la suite de l’exercice. Toutefois, ce n’est pas très compliqué car elle est simplement transmise comme paramètre lors de l’appel de l’API.

Pour créer une clé, ouvrez le site web suivant :

https://coudr.com/keymsmaps

Suivez la procédure décrite sur la page pour obtenir une clé d’API pour Microsoft Maps. Cette procédure est en anglais. Si vous ne comprenez pas cette langue, demandez de l’aide à votre formateur.

La procédure est simple. Toutefois, vous devrez fournir les renseignements suivants :

  • Application name (Nom de l’application) : obligatoire. Par exemple : demo.
  • Application URL (URL de l’application) : facultatif. Laissez vide.
  • Key type (Type de clé) : obligatoire. Indiquez : Basic.
  • Application type (Type d’application) : obligatoire. Indiquez : Dev/Test.

Vous obtenez ensuite l’écran suivant :

Clé Bing Maps
Clé Bing Maps

Il suffit ensuite de cliquer sur Show key pour la voir, ou de cliquer sur Copy key pour la récupérer : copiez la clé et enregistrez-la dans un simple fichier texte, créé avec le Bloc-Notes (notepad) car vous allez bientôt l’utiliser.

Créer une application Power Apps

Ouvrez le site web Microsoft Power Apps.

https://make.powerapps.com/

Dans le volet de navigation (à gauche), cliquez sur Applications.

Dans la bannière du volet central (en haut), cliquez sur Nouvelle application (en haut, vers la gauche).

Dans le menu qui s’affiche, cliquez sur : Zone de dessin.

Dans le volet central du nouvel onglet, cliquez sur Mode téléphone sous Application vide.

Notez que vous auriez pu aussi bien choisir la disposition de la tablette sous Application vide, car les manipulations sont strictement identiques. Il s’agit d’un choix purement arbitraire.

Si la fenêtre Bienvenue dans Power Apps Studio s’ouvre, cliquez sur Ignorer.

Enregistrer et renommer l’application

Cliquez sur le ruban Fichier puis dans le volet de gauche, cliquez sur Enregistrer.

Dans le volet central (vers la droite), remplacez le nom de l’application (“Application”) par canBing.

En bas et à droite de l’écran, cliquez sur le bouton Enregistrer.

Si vous ne voyez pas le bouton Enregistrer, c’est parce que vous êtes dans les Paramètres de l’application. Dans ce cas, cliquez sur Enregistrer.

Cliquez sur la flèche en haut et à gauche pour revenir à l’accueil.

Récupérer la position courante

Si un pop-up vous indique que Power Apps souhaite connaître votre position, cliquez sur le bouton Autoriser.

Insérez un contrôle Bouton, puis changez ses propriétés.

Button1.Text = "Où suis-je ?"
Button1.Y = 40
Button1.OnSelect = UpdateContext({maPosition: Location})

Insérez deux étiquettes, et nommez-les : maLongitude, maLatitude.

Définissez leur positionnement.

maLongitude.Y = 160
maLatitude.Y = 280

Définissez leur contenu.

maLongitude.Text = "Longitude: " & maPosition.Longitude
maLatitude.Text = "Latitude: " & maPosition.Latitude

Facultativement, vous pouvez aussi agrandir la police et changer la couleur des étiquettes. C’est selon votre envie, car cela n’a pas de conséquence sur la suite de l’exercice.

Afficher la position courante

Insérez un contrôle Image, nommez-le maCarte puis définissez sa taille et son positionnement.

maCarte.Height = 600
maCarte.Width = 600
maCarte.X = 20
maCarte.Y = 400

Ensuite, définissez la propriété Image du contrôle de type Image, avec l’URL suivante. Vous prendrez soin de remplacer <votre clé> par la valeur de votre clé Bing Maps.

maCarte.Image = "https://dev.virtualearth.net/REST/V1/Imagery/Map/Road/" & Substitute("maPosition.latitude";",";".") & Substitute("maPosition.longitude";",";".") & "?mapSize=600,600 & key=<votre clé>"

La fonction Substitue() remplace le caractère “,” par “.”.

Pour vous aider, regardez la copie d’écran ci-dessous.

Afficher la position courante
Afficher la position courante

Afficher une position déterminée

Cette fois-ci, vous allez afficher la géolocalisation d’un endroit précis.

Pour ce faire, supprimez le contrôle bouton, et supprimez aussi les deux contrôles étiquettes : il ne doit rester que le contrôle image.

Ensuite, insérez un contrôle Entrée de texte, et nommez-le maVille puis définissez ses propriétés.

maVille.Default = ""
maVille.HintText = "Nom de la ville"
maVille.X = 20
maVille.X = 40

Définissez le positionnement de la carte.

maCarte.Width = 600
maCarte.X = 20
maCarte.Y = 160

Définissez la propriété Image du contrôle de type Image, avec l’URL suivante. Vous prendrez soin de remplacer <votre clé> par la valeur de votre clé Bing Maps.

maCarte.Image = "https://dev.virtualearth.net/REST/V1/Imagery/Map/Road/" & EncodeUrl(maVille.Text) & "?mapSize=600,600&key=<votre clé>"

Vous pouvez copier-coller cette URL à partir des fichiers d’exercices.

La fonction EncodeUrl() remplace les caractères non alphanumériques par des caractères alphanumériques, comme % ou des caractères hexadécimaux. En théorie, elle n’est pas indispensable. Toutefois, elle évite des caractères qui pourraient faire planter l’application.

Pour vous aider, regardez la copie d’écran ci-dessous.

Afficher une position déterminée
Afficher une position déterminée

L’exercice est terminé.

Résumé

Dans cet exercice, vous avez découvert comment afficher une carte de Microsoft Bing géolocalisée en fonction de votre position courante et en fonction d’un emplacement défini.

Il y a d’autres appels possibles de l’API Bing Cartes. Vous les trouverez des exemples à l’emplacement : https://coudr.com/apimsmaps.

La procédure pour obtenir une clé d’API pour Google Maps est décrite sur ce lien : https://coudr.com/keygooglemaps. Le principe est similaire. Ce qui change concerne l’appel de l’API qui est différent : https://coudr.com/apigooglemaps.

Article mis à jour le 16.04.2020.

Claude COUDERC

Ajouter un commentaire