Contrôle carte dans PowerApps : Rechargement

Étiquetté : 

  • Contrôle carte dans PowerApps : Rechargement

    Posté par Tanguy Touzard sur 19 avril 2022 à 10h11

    Bonjour à tous,

    J’ai créé une petite app de géolocalisation qui fonctionne plutôt bien. Un problème que je rencontre toutefois: Lorsque l’utilisateur clique sur une épingle, ca ouvre une nouvelle fenêtre avec le détail de l’élément sélectionné. Mais quand je ferme cette fenêtre (avec la fonction back, en l’occurence), la carte est rechargée et l’utilisateur perd le zoom et/ou les déplacements qu’il avait fait sur la carte.

    Une idée s’il est possible d’éviter ce comportement et faire que la carte revienne à la même place, sans tout recharger?

    PostID=nfrxoaYdjlrIFok

    Tanguy Touzard a répondu Il y a 11 mois, 4 semaines 1 Membre · 2 Réponses
  • 2 Réponses
  • Guillaume RENARD

    Membre
    20 avril 2022 à 13h13

    Bonjour Tanguy,

    Il semble pas possible de bloquer le rechargement de la carte lors de l’affichage de l’écran.

    Il existe cependant 2 solutions permettant de repositionner la carte dans sa configuration précédente.

    La première : lors du clic de l’utilisateur sur l’épingle, récupérer la latitude et la longitude du point central de la carte à cet instant avec les propriétés Map.CenterLocation.Latitude et Map.CenterLocation.Longitude

    Stocker ces valeurs dans des variables pour qu’elles puissent être réutilisées pour définir la position par défaut de la carte lors du retour sur l’écran, avec les propriétés DefaultLatitude et DefaultLongitude.

    Malheureusement, il n’est pas possible de récupérer le niveau de zoom, la propriété DefaultZoomLevel devra donc prendre une valeur fixe (par exemple 10).

    Attention, ne pas oublier de passer la valeur de la propriété DefaultLocation à true pour que cela soit bien pris en compte.

    La seconde : moins propre, mais permettant de conserver le niveau de zoom également, serait de “fusionner” tes 2 écrans. Les informations de détail affichées lors du clic sur l’épingle seraient dans le même écran que la carte, et affichées/masquées en jouant sur la propriété OnVisible des contrôles. En ajoutant à cela un fond un peu transparent (style popin) ou opaque (pour conserver l’impression de changement d’écran), il n’y aurait dans ce cas plus de rechargement de la carte.

    CommentID=Vyg7n9ceOaZBUEG, PostID=nfrxoaYdjlrIFok

  • Tanguy Touzard

    Membre
    20 avril 2022 à 13h26

    Merci, entre temps, la fusion des deux écrans de carte et de détail m’a été également suggéré et ça marche très bien!

    A noter que quand la carte s’affiche, elle chercher à afficher tous les points de la collection à laquelle elle est liée. Donc peut importe qu’on stocke les infos dans des variables et qu’on les mappe avec les propriétés de la carte, elle s’en fiche.

    CommentID=gZe0dLyA2Tc7FFW, PostID=nfrxoaYdjlrIFok

Connectez-vous pour répondre.