Vue d'ensemble de l'API Embed
L'API Embed permet à la page qui héberge une carte Icon Map incorporée de piloter la carte en JavaScript et de recevoir ses notifications en retour. Si vous avez déjà utilisé la bibliothèque cliente de Power BI Embedded, le principe est le même, appliqué aux cartes : un petit SDK, un handle, des commandes qui renvoient des promesses et des événements auxquels vous vous abonnez.
Cette section s'adresse aux développeurs qui créent la page hôte. Si vous êtes l'auteur de la carte et souhaitez la publier ou l'incorporer, commencez par Publication et partage et Incorporer des cartes.
const map = IconMapEmbed.embed(document.getElementById("map"), { publishId: "pub_..." });
await map.ready;
await map.flyTo({ center: [-0.12, 51.5], zoom: 11 });
await map.selectByKey({ layerId: "assets", field: "asset_id", keys: ["41B"], zoomTo: true });
map.on("featureClick", (feature) => feature && openAssetPanel(feature.fields));
Ce que vous pouvez faire
| Domaine | Exemples |
|---|---|
| Caméra | Lire la vue, sauter ou voler vers un lieu, cadrer un rectangle englobant ou une couche entière, limiter le déplacement à une zone |
| Couches | Lister les couches, les afficher et les masquer, lire chaque bascule dont dispose le lecteur (étiquettes, ombrage, graphiques et autres visuels) |
| Filtres | Découvrir les filtres déclarés par l'auteur, les définir (y compris des plages numériques et « 30 derniers jours »), actualiser les données en direct |
| Segments | Lire et définir les segments du lecteur, lister les valeurs proposées par un segment |
| Sélection | Sélectionner des entités à l'aide de vos propres clés (« équipement 41B »), mettre en surbrillance sans sélectionner, filtrer de manière croisée depuis un graphique |
| Scènes | Capturer toute la vue sous la forme d'un seul objet, la restaurer plus tard, appliquer les signets de l'auteur, lire des visites |
| Présentation | Basculer entre les fonds de carte publiés, masquer les contrôles propres à la carte, passer en mode sombre, lire la légende sous forme de données, exporter une image |
| Commandes de fenêtre contextuelle | Ajouter votre propre action à la fenêtre contextuelle d'une entité (« Créer une intervention pour cet équipement ») |
| Analyse | Exécuter le moteur d'analyse d'une couche et recevoir ses résultats, sur les cartes qui en ont un |
| Événements | Changements de vue, clics sur des entités, sélection, filtres, segments, clics sur des liens, état des données, expiration du jeton |
Le guide des commandes les présente avec des exemples ; la référence de l'API liste chaque commande, événement, code d'erreur et limite.
Fonctionnement
Le SDK monte la carte dans un <iframe> et communique avec elle par postMessage. Aucune partie de la carte ne s'exécute dans votre page, et aucune partie de votre page ne s'exécute dans la carte.
- Votre page appelle
embed(). Le SDK crée le cadre et attend qu'il signale qu'il est prêt. - Les deux côtés conviennent d'une version de protocole, et la carte vérifie l'origine de votre page par rapport à la liste des sites autorisés par son auteur.
- Si vous êtes autorisé, la carte répond par un descripteur de capacités : les commandes et événements auxquels cette carte répondra.
await map.readyse résout avec ce descripteur. - Ensuite, chaque appel de méthode correspond à un message envoyé à la carte et à une réponse en retour.
Vous n'avez rien à synchroniser. Les commandes appelées avant la fin du démarrage de la carte sont mises en attente et traitées dès que la partie de la carte dont elles ont besoin existe.
Deux façons d'incorporer, une seule API
| Carte publiée | Incorporation pour votre organisation | |
|---|---|---|
| Qui la consulte | Toute personne à qui vous donnez la page, sans compte Fabric | Des collègues, chacun connecté avec son propre compte professionnel |
| Données | Figées ou en direct, via la publication | En direct, lues au nom de chaque lecteur : les autorisations Fabric et la sécurité au niveau des lignes s'appliquent |
| Point d'entrée | embed(element, { publishId }) |
embedForOrganization(element, { mapItem }) |
| Qui peut la piloter | Les sites figurant dans les Allowed origins de la publication | Les sites figurant dans les origines Embedding for your organization de l'élément |
Les deux renvoient le même handle avec les mêmes méthodes. Quelques groupes n'existent que sur les cartes publiées (filtres déclarés et actualisation des données), car un élément en direct n'a pas de publication dans laquelle les déclarer. capabilities.commands vous indique toujours exactement ce dont vous disposez.
Ce que contrôle l'auteur
Le contrôle de l'incorporation s'active carte par carte, par son auteur, dans la boîte de dialogue de publication :
- Allowed origins. Seules les pages de ces sites peuvent ouvrir une session de contrôle. Une carte sans origine autorisée peut toujours s'afficher, mais ne peut pas être pilotée.
- Groupes de commandes. Caméra, couches, filtres, segments, sélection, scènes, présentation, commandes de fenêtre contextuelle, actualisation des données, analyse, et Read state and events. Tous sont activés par défaut ; l'auteur peut désactiver n'importe lequel.
Ces deux réglages font partie de la publication signée : ils ne peuvent pas être élargis en modifiant des fichiers ni par quoi que ce soit envoyé par votre page.
Ce que l'API ne fera pas
Ce sont des limites délibérées et permanentes, utiles à connaître avant de concevoir votre page :
- Rien qu'un lecteur ne pourrait faire en cliquant. Aucune commande n'accepte une URL, une requête, un style ou une définition de couche. Pour afficher une autre carte, publiez une autre carte.
- Rien que le lecteur ne peut voir.
featureClickne transporte que les champs d'info-bulle de la couche. Il n'existe aucune lecture en masse des données d'une couche, ni aucun accès à la configuration de la carte, à ses sources de données ou à ses requêtes. - Uniquement les filtres déclarés.
setFiltersaccepte les filtres déclarés par l'auteur et rien d'autre ; les valeurs sont liées comme paramètres sur le serveur, jamais collées dans une requête. - La visibilité, pas le style. Vous pouvez afficher et masquer une couche. Vous ne pouvez pas la recolorer ni modifier son style.
- Les étiquettes de confidentialité sont respectées.
exportImageetprintsont refusées lorsqu'une étiquette appliquée aux données de la carte n'autorise pas l'exportation.
Étapes suivantes
- Exemples : des cartes en direct à manipuler, chacune accompagnée de la page complète qui la produit.
- Prise en main : installer le SDK et piloter votre première carte.
- Commandes et Événements : la visite guidée.
- Si vous venez de Power BI : si vous connaissez déjà
powerbi-client.