Implémenter des styles dynamiques pour les cartes d’intérieur du Créateur
Vous pouvez utiliser le service Feature State d’Azure Maps Creator pour appliquer des styles basés sur les propriétés dynamiques des caractéristiques des données de cartes d’intérieur. Par exemple, vous pouvez afficher des salles de réunion d’un bâtiment dans une couleur spécifique reflétant leur état d’occupation. Cet article explique comment afficher de façon dynamique des caractéristiques de carte d’intérieur avec le service État de la fonctionnalité et le module web Intérieur.
Prérequis
- Un
statesetId
. Pour plus d’informations, consultez le guide pratique pour créer un ensemble d’états de caractéristiques. - une application web. Pour plus d’informations, consultez le guide pratique pour utiliser le module Indoor Maps.
Cet article utilise l’application Postman, mais vous pouvez choisir un autre environnement de développement d’API.
Implémenter l’application de style dynamique
Une fois les prérequis remplis, vous devez disposer d’une application web simple configurée avec votre clé d’abonnement et statesetId
.
Sélectionner les caractéristiques
Vous devez référencer une caractéristique comme une salle de réunion ou de conférence par son ID pour implémenter un style dynamique. Utilisez l’ID de caractéristique pour mettre à jour la propriété dynamique ou l’état de cette caractéristique. Pour afficher les caractéristiques définies dans un jeu de données, utilisez l’une des méthodes suivantes :
API WFS (service de caractéristique web). Utilisez l’API WFS pour interroger des jeux de données. L’API de service de caractéristique web suit les caractéristiques de l’API Open Geospatial Consortium. L’API de service de caractéristique web est utile pour interroger des caractéristiques à l’intérieur d’un jeu de données. Par exemple, vous pouvez utiliser WFS pour rechercher toutes les salles de réunion de taille moyenne d’un bâtiment et d’un étage particuliers.
Implémentez du code personnalisé qu’un utilisateur peut utiliser pour sélectionner des caractéristiques sur une carte à l’aide de votre application web, comme illustré dans cet article.
Le script suivant implémente l’événement de clic de souris. Le code récupère l’ID de caractéristique en fonction du point cliqué. Dans votre application, vous pouvez insérer le code après le bloc de code du gestionnaire d’intérieur. Exécutez votre application, puis consultez la console pour obtenir l’ID de caractéristique du point cliqué.
/* Upon a mouse click, log the feature properties to the browser's console. */
map.events.add("click", function(e){
var features = map.layers.getRenderedShapes(e.position, "unit");
features.forEach(function (feature) {
if (feature.layer.id == 'indoor_unit_office') {
console.log(feature);
}
});
});
Le tutoriel Créer une carte d’intérieur a configuré le stateset de caractéristique pour accepter les mises à jour d’état pour occupancy
.
Dans la section suivante, vous allez définir l’état d’occupation du bureau UNIT26
sur true
et du bureau UNIT27
sur false
.
Définir l’état d’occupation
Mettez à jour l’état des deux bureaux, UNIT26
et UNIT27
:
Dans l’application Postman, sélectionnez New (Nouveau).
Dans la fenêtre Create New (Créer), sélectionnez HTTP Request (Requête HTTP).
Entrez un Request name (Nom de demande) pour la demande, par exemple POST Data Upload.
Entrez l’URL suivante pour l’API des états de mise à jour des fonctionnalités (remplacez
{Azure-Maps-Subscription-key}
par votre clé d’abonnement Azure Maps etstatesetId
par lestatesetId
) :https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
Sélectionnez l’onglet En-têtes.
Dans le champ KEY (CLÉ), sélectionnez
Content-Type
. Dans le champ VALUE (VALEUR), sélectionnezapplication/json
.Sélectionnez l’onglet Corps .
Dans les listes déroulantes, sélectionnez raw (brut) et JSON.
Copiez le style JSON suivant, puis collez-le dans la fenêtre Body (Corps) :
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }
Important
La mise à jour n’est enregistrée que si l’horodatage de publication est postérieur à celui utilisé dans les demandes de mise à jour d’état de caractéristique précédentes pour le même ID de caractéristique.
Modifiez l’URL que vous avez utilisée à l’étape 7 en remplaçant
UNIT26
parUNIT27
:https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT27?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
Copiez le style JSON suivant, puis collez-le dans la fenêtre Body (Corps) :
{ "states": [ { "keyName": "occupied", "value": false, "eventTimestamp": "2020-11-14T17:10:20" } ] }
Visualiser des styles dynamiques sur une carte
L’application web que vous avez précédemment ouverte dans un navigateur doit maintenant refléter l’état mis à jour des caractéristiques de carte :
- Le bureau
UNIT27
(142) doit apparaître en vert. - Le bureau
UNIT26
(143) doit apparaître en rouge.
Voir la démonstration en direct
Étapes suivantes
Pour en savoir plus, consultez :
[Qu’est-ce qu’Azure Maps Creator ?]