ArcGIS Arcade peut être utilisé pour interroger directement les ArcGIS Knowledge Graphs depuis des pop-ups personnalisés dans les cartes web, les applications cartographiques, les diagrammes de liens dans de nombreuses applications ArcGIS, telles qu'ArcGIS Pro, ArcGIS AllSource, ArcGIS Knowledge Studio et dans les cartes de Map Viewer, Dashboards et Experience Builder. Cela permet aux analystes d'enrichir une entité, un élément ou une relation sélectionné(e) avec un contexte connecté provenant d'un knowledge graph d'entreprise—sans sortir de leur flux de travail existant sur la carte ou le diagramme de liens.
Ce modèle est utile lorsqu'une couche d'entités ne contient qu'une partie du tableau opérationnel, mais que le contexte plus large se trouve dans un knowledge graph. Un pop-up peut faire correspondre l'entité sélectionnée à une entité du graph par ID unique, utiliser la géométrie de l'entité sélectionnée dans une requête spatiale sur le graph, résumer les entités connectées ou générer une URL qui ouvre l'entité liée dans Knowledge Studio.
Dans ce contexte, « chargement latéral du contexte » signifie récupérer les informations liées au graph au moment du clic et les afficher dans un pop-up, plutôt que de copier des attributs dérivés du graph dans la couche d'entités.
Il existe deux modèles courants : premièrement, les pop-ups des couches d'entités peuvent utiliser un ID partagé, un attribut ou une géométrie pour trouver des entités liées dans un knowledge graph ; deuxièmement, les pop-ups des couches de knowledge graph peuvent partir de l'entité ou relation sélectionnée et interroger un contexte connecté supplémentaire depuis le même graph.
Ce que vous apprendrez
- Comment utiliser ArcGIS Arcade pour interroger les ArcGIS Knowledge Graphs depuis des pop-ups personnalisés.
- Comment faire correspondre les pop-ups des couches d'entités aux entités du graph en utilisant des IDs partagés, des attributs ou la géométrie.
- Comment interroger le même graph depuis une couche de knowledge graph ou un diagramme de liens en utilisant $graph.
- Comment formater les résultats des requêtes sur le graph en texte de pop-up, tableaux, liens ou résumés.
- Comment générer des URLs Knowledge Studio à partir d'expressions Arcade.
Quand utiliser les pop-ups Arcade pour le graph
Utilisez ce modèle lorsque votre couche cartographique montre l'entité opérationnelle, mais que le contexte lié se trouve dans un ArcGIS Knowledge Graph. Des exemples courants incluent la recherche de fournisseurs, actifs, installations, parcelles, clients, documents ou autres entités connectées liées à une entité sélectionnée.
- Exécutez des requêtes spatiales sur le graph à partir d'un polygone sélectionné, itinéraire, installation ou zone d'incident.
- Résumez les relations en amont et en aval
- Résumez les propriétés de ces entités liées en amont ou en aval (somme, moyenne, etc.)
- Ouvrez les entités sélectionnées ou liées dans ArcGIS Knowledge Studio.
- Posez des questions supplémentaires dans ArcGIS Knowledge Studio sur l'entité sélectionnée ou liée via un paramètre URL
- Enrichissez vos cartes et applications existantes sans dupliquer les attributs dérivés du graph dans les couches d'entités.
Prérequis
- ArcGIS Enterprise 11.3 ou version ultérieure pour les fonctions Arcade sur knowledge graph dans les pop-ups web Map / Link Chart
- ArcGIS Pro 3.3 ou version ultérieure, ArcGIS AllSource, Map Viewer, ArcGIS Knowledge Studio ou une autre expérience cartographique ou diagramme de liens prise en charge.
- Accès à un ArcGIS Knowledge Graph.
- Un identifiant partagé, une géométrie sélectionnée ou une entité de couche knowledge graph pouvant être utilisée comme entrée de requête.
- Permissions appropriées pour accéder à la couche d'entités, au knowledge graph et au projet Knowledge Studio.
- ArcGIS Enterprise 12.1 pour débloquer les URLs dynamiques vers des requêtes sauvegardées, nouveaux diagrammes de liens et autres workflows avancés dans Knowledge Studio depuis les pop-ups
Flux de travail canonique
- Identifiez le knowledge graph avec KnowledgeGraphByPortalItem() ou $graph.
- Capturez l'entité sélectionnée, relation, attribut ou géométrie.
- Utilisez querygraph() pour récupérer des entités connectées, relations ou correspondances spatiales.
- Formatez les résultats de la requête en contenu lisible pour le pop-up.
- Retournez un dictionnaire que ArcGIS affiche dans le pop-up.
Exemple complet : script Arcade de bout en bout
Passons en revue un exemple. Supposons que vous ayez une couche d'entités montrant un cône de prévision d'ouragan superposé sur une carte des installations clés des fournisseurs. De plus, vous maintenez des informations plus détaillées sur vos fournisseurs—et leurs fournisseurs—dans un knowledge graph séparé dans ArcGIS. Maintenant, lorsque vous cliquez sur une entité liée à la météo, votre pop-up peut instantanément exécuter une requête spatiale contre votre knowledge graph. Cela vous permet d'identifier non seulement tous vos fournisseurs de niveau 1 situés dans la zone affectée, mais aussi leurs fournisseurs en amont et toutes pièces qui pourraient devoir être pré-positionnées (expédiées plus tôt) en préparation à l'ouragan.
Vous pouvez également configurer votre pop-up personnalisé pour exécuter plusieurs requêtes simultanément. Par exemple, le même pop-up pourrait afficher un résumé de tous les produits en aval, clients clés et revenus attendus susceptibles d'être impactés dans les 30 prochains jours si l'installation du fournisseur est perturbée par l'ouragan.
Le script Arcade exemple ci-dessous montre comment vous pourriez utiliser dans une Carte avec un Service d’entités indépendant là pour référence aux côtés d'une couche spatial Knowledge Graph, ou bien le graph pourrait ne pas être présent du tout dans la carte ! La requête sur le graph dans l'expression Arcade retourne les Fournisseurs situés à l'intérieur du polygone d'une entité météo sélectionnée.
Le script ci-dessous démontre plusieurs modèles utiles :
- Utilise la fonction géométrique Arcade - generalize - pour simplifier la forme du polygone sélectionné afin d'améliorer la performance de la requête spatiale openCypher
- Montre comment générer des URLs Knowledge Studio qui ouvrent l'entité sélectionnée ou l'entité 'jumelle' correspondante dans un knowledge graph. Vous pouvez aussi générer des URLs pour explorer d'autres entités liées pour approfondir l'exploration.
Code exemple : script Arcade complet avec requête sur un service knowledge graph indépendant
//L’ID de l’élément portail du service Knowledge Graph (pid) et URL serveur portail (Modifiez ces valeurs)
var pid = "d03d80ca35c94cadb963f845acbd0de1"
var portal_url = " https://[YOUR_ORG_PORTAL_URL].com/portal/"
var kg = KnowledgeGraphByPortalItem(Portal(portal_url), pid)
// Pour simplifier le polygone pour une meilleure performance, nous utilisons la fonction Generalize
var gen = Generalize($feature, 5000, true, 'meters')
var results = querygraph(kg, "MATCH (s:Supplier) WHERE esri.graph.ST_Contains($feature_geom, s.shape) RETURN s.Name, s.globalid", {'feature_geom': gen});
var final_str = "";
var cnt = 0
for (var r in results) {
var name = results[r][0]
var g_id = StandardizeGuid(results[r][1],'digits-hyphen')
var studio_url = '<a href = ' + server_url + '/apps/knowledge-studio/main?id=' + pid + '&selectedContentId=dataExplorer&selectedContentElement=%7B' + g_id + '%7D&selectedContentInstruction=entity>'
final_str = final_str + studio_url + " " + name + "</a><br>"
}
return {
'type' : 'text',
'text' : final_str
}
Comment fonctionnent les pop-ups Arcade pour le graph
'Le guide détaillé "comment faire"',' field 71':'À partir d’ArcGIS Enterprise 11.3 et ArcGIS Pro 3.3,'
Starting with ArcGIS Enterprise 11.3 and ArcGIS Pro 3.3, 'les expressions Arcade''peuvent interroger les ArcGIS Knowledge Graphs depuis des pop-ups personnalisés dans cartes et diagrammes de liens. Ces pop-ups peuvent être configurés pour des couches d’entités ou couches knowledge graph dans ArcGIS Pro, ArcGIS AllSource, ArcGIS Knowledge Studio, Map Viewer et applications web cartographiques.'
'Le pop-up utilise des fonctions Arcade sur le graph pour envoyer des informations depuis l’entité sélectionnée vers une requête sur le graph. La requête peut retourner des entités connectées, détails relationnels, résumés calculés, correspondances spatiales ou sortie formatée apparaissant directement dans le pop-up.'
'Pour',' field 76':'pop-ups couches d’entités',' field 77':'l’entité sélectionnée est généralement associée à une entité knowledge graph via GUID partagé, ID actif, ID installation, ID parcelle ou autre attribut unique. Le pop-up peut aussi passer la géométrie de l’entité sélectionnée dans une requête spatiale sur le graph pour trouver des entités intersectant cette zone.'feature-layer pop-ups, the selected feature is typically matched to a knowledge graph entity using a shared GUID, asset ID, facility ID, parcel ID, or other unique attribute. The pop-up can also pass the selected feature’s geometry into a spatial graph query to find graph entities that intersect, fall within, or relate to that area.
'Pour',' field 79':'pop-ups couches knowledge graph',' field 80':'l’entité ou relation sélectionnée est déjà point de départ. Arcade peut utiliser cette sélection pour interroger plus de contexte sur le graph, résumer données connectées ou générer URL Knowledge Studio ouvrant l’entité liée pour exploration approfondie.'knowledge graph layer pop-ups, the selected entity or relationship is already the starting point. Arcade can use that selection to query additional graph context, summarize connected data, or generate a Knowledge Studio URL that opens the related entity for deeper exploration.
'Modèle Arcade pour interroger ArcGIS Knowledge Graphs depuis pop-ups'
'La plupart des pop-ups basés sur Arcade suivent ce modèle basique : identifier le graph , définir l’entité sélectionnée comme entrée , exécuter la requête , formater résultats , retourner dictionnaire prêt pour pop-up . Passons chaque étape en revue.'
'Étape 1 — Identifier le Knowledge Graph à interroger'
'Dans Arcade , « connecter » à un knowledge graph signifie identifier celui que vous voulez interroger . Utilisez ',KnowledgeGraphByPortalItem() to reference a graph by portal item. If the pop-up is built on a Knowledge Graph Layer and queries the same graph, you can skip this step and use $graph directly in the query.
- If the graph is stored in another ArcGIS Enterprise portal, users may be prompted to sign in to that portal when the map or link chart opens.
- Make sure the graph data model—entity types, relationship types, and properties—aligns with the identifiers, attributes, or geometry used by the pop-up expression.
Example code: reference the knowledge graph
// Option A: query a target graph by portal item
var portalUrl = "https://[YOUR_ORG_PORTAL_URL]/portal";
var graphItemId = "[KNOWLEDGE_GRAPH_ITEM_ID]";
var kg = KnowledgeGraphByPortalItem(Portal(portalUrl), graphItemId);
// Option B: query the same graph as the selected graph layer
var kg = $graph;
Step 2 — Identify the Feature, Entity or Geometry You Want to Query
Next, decide what the pop-up will pass into the graph query: a feature attribute, the selected feature’s geometry, or the selected graph entity or relationship.
For feature-layer pop-ups, this usually means:
- Choosing a shared identifier, such as a GUID, asset ID, facility ID, parcel ID, or other unique attribute.
- Using that value to find the corresponding entity or connected context in the knowledge graph.
Query Patterns | Description | Example Use Cases |
|---|
Match by a Unique ID | Match a selected feature to a graph entity using a shared ID such as a GUID, asset ID, facility ID, or parcel ID. | · Fetch connected entities and properties · Aggregate statistics about groups of connected entities · Aggregate statistics about properties of those connected entities · Find employees matching open roles, proximity, and skill criteria. |
Match by Intersecting Shape | Utilisez la géométrie de l'entité sélectionnée comme entrée pour une requête de graphe spatial qui renvoie les entités intersectant, contenues dans, ou liées à cette forme. | · Trouver les fournisseurs en aval des fournisseurs situés dans un polygone sélectionné. · Agréger des statistiques à partir des propriétés des entités ou relations connectées |
Exemple de code : capturer l'entrée sélectionnée
// Entrée basée sur un attribut d'une entité sélectionnée
var selectedId = $feature.[SHARED_ID_FIELD];
var params = { id: selectedId };
// Entrée de couche graphe à partir d'une entité sélectionnée
var selectedGuid = $feature.globalid;
Pour les pop-ups de couche graphe, l'entité sélectionnée est déjà le point de départ, donc l'expression peut généralement utiliser directement le GUID de cette entité.
Les requêtes graphe peuvent aussi utiliser la géométrie de l'entité sélectionnée pour filtrer spatialement les résultats, comme dans l'exemple de chaîne d'approvisionnement décrit ci-dessus.
// Entrée basée sur la géométrie d'une entité sélectionnée
var selectedGeom = Generalize($feature, 5000, true, 'meters');
var spatialParams = { feature_geom: selectedGeom };
querygraph (kg, "MATCH (s:Supplier) WHERE esri.graph.ST_Contains($feature_geom, s.shape) RETURN s.Name, s.globalid", {'feature_geom': $feature}
Cette étape ancre la requête à l'entité, relation ou géométrie que l'utilisateur a sélectionnée.
Étape 3 — Écrire la logique de la requête Graphe
Définissez l'information que le pop-up doit retourner. Les opérations courantes incluent :
- Récupérer les entités voisines, telles que fournisseurs, actifs, installations, personnes ou documents.
- Parcourir des relations multi-sauts, comme les fournisseurs en amont ou les clients en aval.
- Filtrer par statut, période temporelle, catégorie, type de relation ou pertinence spatiale.
- Calculer des résumés tels que comptes, totaux, classements, scores de risque ou listes de catégories.
- Combiner plusieurs requêtes graphe en une seule réponse pop-up.
L'objectif est de transformer les données connectées du graphe en une réponse concise que l'utilisateur peut comprendre d'un coup d'œil.
Exemple de code : exécuter des requêtes graphe relationnelles et spatiales
var results = querygraph(
kg,
"MATCH (start:EntityType {globalid: $id})-[:RELATIONSHIP_TYPE]->(related:EntityType) RETURN related.Name, related.globalid LIMIT 10",
{ id: selectedGuid }
);
var spatialResults = querygraph(
kg,
"MATCH (e:EntityType) WHERE esri.graph.ST_Contains($feature_geom, e.shape) RETURN e.Name, e.globalid",
{ feature_geom: selectedGeom }
);
Étape 4 — Formater les résultats pour le pop-up
Après que la requête ait retourné des résultats, formatez-les pour le pop-up. La plupart des expressions :
- Construisent un dictionnaire avec des sections nommées ou une sortie formatée.
- Formatent les résultats en texte, listes, petits tableaux ou liens.
- Renvoient un objet structuré unique que le moteur de pop-up ArcGIS peut afficher.
C'est ici que les résultats bruts du graphe deviennent un contexte lisible pour l'entité cartographique sélectionnée, l'entité ou l'élément du graphique lié.
Exemple de code : formater les résultats du graphe pour affichage
var finalText = "";
for (var r in results) {
var name = results[r][0];
var guid = results[r][1];
finalText += "<b>" + name + "</b><br>";
}
if (IsEmpty(finalText)) {
finalText = "Aucun résultat lié au graphe trouvé.";
}
Étape 5 — Retourner le dictionnaire final
Enfin, retournez le dictionnaire. ArcGIS lit l'objet retourné et affiche le texte formaté, sections, tableaux, liens ou contrôles dans le pop-up.
Exemple de code : retourner le contenu du pop-up
return {
type: 'text',
text: finalText
};
Formater les résultats des requêtes ArcGIS Knowledge Graph dans les pop-ups
Les expressions Arcade peuvent formater les résultats des requêtes graphe de plusieurs façons adaptées aux pop-ups. Les modèles courants incluent :
- Générer des sections avec listes extensibles ou tableaux d'entités liées résultantes correspondant à votre modèle
- Générer des tableaux d'entités et statistiques résultantes créés via la requête
- Générer des liens dynamiques vers des entités (à partir de la version 11.4) ou des requêtes enregistrées (à partir de la version 12.0) dans l'application web Knowledge Studio en utilisant Paramètres URL.
Voir exemple : Arcade_Graph_Pop-ups.mp4
Exemple complet : script Arcade de bout en bout
Dans cet exemple simple (répété ci-dessus), la requête graphe dans l'expression Arcade retourne les fournisseurs situés dans le polygone d'une entité météo sélectionnée. Le script utilise aussi la fonction Arcade géométrique - generalize' - pour simplifier la forme du polygone sélectionné afin d'améliorer la performance de la requête spatiale openCypher.
'//L'ID de l'élément portail du service Knowledge Graph (pid) et URL du portail serveur (modifiez ces valeurs)'
'var pid = "d03d80ca35c94cadb963f845acbd0de1"'
'var portal_url = " https://[YOUR_ORG_PORTAL_URL].com/portal/"'
'var kg = KnowledgeGraphByPortalItem(Portal(portal_url), pid)'
' '
'// Pour simplifier le polygone pour une meilleure performance, nous utilisons la fonction Generalize'
'var gen = Generalize($feature, 5000, true, 'meters')'
' '
'var results = querygraph(kg, "MATCH (s:Supplier) WHERE esri.graph.ST_Contains($feature_geom, s.shape) RETURN s.Name, s.globalid", {'feature_geom': gen});'
' '
'var final_str = "";'
'var cnt = 0'
' '
'for (var r in results) {'
' var name = results[r][0]'
' var g_id = StandardizeGuid(results[r][1],'digits-hyphen')'
' var studio_url = '<a href = ' + server_url + '/apps/knowledge-studio/main?id=' + pid + '&selectedContentId=dataExplorer&selectedContentElement=%7B' + g_id + '%7D&selectedContentInstruction=entity>';'
' final_str = final_str + studio_url + " " + name + "</a><br>";'
' }'
'return {'
' type : 'text','
text : final_str
}
This is an example of a query you could use in a Map with an independent Feature Service there for reference alongside a spatial Knowledge Graph layer, or the graph could not be present in the map at all!
I plan follow this blog with some additional full sample queries, along with AI prompts to help you leverage LLMs to help you build your own Arcade + Graph queries. You can also go deeper by reviewing the Arcade Knowledge Graph function documentation.