ArcGIS Arcade lze použít k přímému dotazování ArcGIS Knowledge Graphs z vlastních vyskakovacích oken v webových mapách, mapových aplikacích, linkových grafech v mnoha aplikacích ArcGIS, jako jsou ArcGIS Pro, ArcGIS AllSource, ArcGIS Knowledge Studio a v mapách v Map Vieweru, Dashboards a Experience Builderu. To umožňuje analytikům obohatit vybraný prvek, entitu nebo vztah o propojený kontext z podnikové znalostní grafu—aniž by uživatelé museli opustit svůj stávající pracovní postup v mapě nebo linkovém grafu.
Tento vzor je užitečný, když vrstva prvků obsahuje pouze část provozního obrazu, ale širší kontext je uložen ve znalostním grafu. Vyskakovací okno může přiřadit vybraný prvek k entitě grafu podle unikátního ID, použít geometrii vybraného prvku v prostorovém dotazu na graf, shrnout propojené entity nebo vytvořit URL, které otevře související entitu v Knowledge Studio.
V tomto kontextu znamená „postranní načítání kontextu“ získávání souvisejících informací z grafu při kliknutí a jejich zobrazení ve vyskakovacím okně, místo kopírování atributů odvozených z grafu do vrstvy prvků.
Existují dva běžné vzory: za prvé, vyskakovací okna vrstev prvků mohou použít sdílené ID, atribut nebo geometrii k nalezení souvisejících entit ve znalostním grafu; za druhé, vyskakovací okna vrstev znalostního grafu mohou začít od vybrané entity nebo vztahu a dotazovat další propojený kontext ze stejného grafu.
Co se naučíte
- Jak používat ArcGIS Arcade k dotazování ArcGIS Knowledge Graphs z vlastních vyskakovacích oken.
- Jak přiřadit vyskakovací okna vrstev prvků k entitám grafu pomocí sdílených ID, atributů nebo geometrie.
- Jak dotazovat stejný graf z vrstvy znalostního grafu nebo linkového grafu pomocí $graph.
- Jak formátovat výsledky dotazu na graf jako text vyskakovacího okna, tabulky, odkazy nebo shrnutí.
- Jak generovat URL pro Knowledge Studio z Arcade výrazů.
Kdy používat Arcade vyskakovací okna s grafem
Použijte tento vzor, když vaše mapová vrstva zobrazuje provozní prvek, ale související kontext je uložen v ArcGIS Knowledge Graph. Běžné příklady zahrnují hledání dodavatelů, aktiv, zařízení, parcel, zákazníků, dokumentů nebo jiných propojených entit souvisejících s vybraným prvkem.
- Spouštějte prostorové dotazy na graf z vybraného polygonu, trasy, zařízení nebo oblasti incidentu.
- Shrňte vztahy směrem nahoru i dolů
- Shrňte vlastnosti těchto souvisejících entit směrem nahoru nebo dolů (součet, průměr atd.)
- Otevřete vybrané nebo související entity v ArcGIS Knowledge Studio.
- Ptejte se na další otázky v ArcGIS Knowledge Studio u vybrané nebo související entity pomocí URL parametru
- Obohaťte stávající mapy a aplikace bez duplikace atributů odvozených z grafu do vrstev prvků.
Požadavky
- ArcGIS Enterprise 11.3 nebo novější pro funkce Arcade knowledge graph ve webových Map / Link Chart Pop-Ups
- ArcGIS Pro 3.3 nebo novější, ArcGIS AllSource, Map Viewer, ArcGIS Knowledge Studio nebo jiná podporovaná mapa či linkový graf.
- Přístup k ArcGIS Knowledge Graph.
- Sdílený identifikátor, vybraná geometrie nebo entita vrstvy knowledge graph použitelná jako vstup pro dotaz.
- Vhodná oprávnění pro přístup k vrstvě prvků, knowledge graph a projektu Knowledge Studio.
- ArcGIS Enterprise 12.1 pro odemknutí dynamických URL k uloženým dotazům, novým linkovým grafům a dalším pokročilým pracovním postupům v Knowledge Studio z pop-up oken
Kanonický pracovní postup
- Identifikujte knowledge graph pomocí KnowledgeGraphByPortalItem() nebo $graph.
- Zachyťte vybraný prvek, entitu, vztah, atribut nebo geometrii.
- Použijte querygraph() k získání propojených entit, vztahů nebo prostorových shod.
- Formátujte výsledky dotazu jako čitelný obsah do pop-up okna.
- Vraťte slovník (dictionary), který ArcGIS vykreslí ve vyskakovacím okně.
Úplný příklad: Kompletní Arcade skript
Projďme si příklad. Předpokládejme, že máte vrstvu prvků zobrazující predikční kužel hurikánu překrytý na mapě klíčových zařízení dodavatelů. Kromě toho uchováváte podrobnější informace o svých dodavatelích—a jejich dodavatelích—v samostatném knowledge graph v ArcGIS. Nyní při kliknutí na prvek související s počasím může vaše pop-up okno okamžitě spustit prostorový dotaz proti vašemu knowledge graph. To vám umožní identifikovat nejen všechny vaše dodavatele první úrovně nacházející se v postižené oblasti, ale také jejich upstream dodavatele a jakékoli díly, které je třeba předem připravit (dříve odeslat) jako přípravu na hurikán.
Můžete také nakonfigurovat vlastní pop-up tak, aby spustil více dotazů najednou. Například stejné pop-up může zobrazit shrnutí všech downstream produktů, klíčových zákazníků a očekávaných příjmů, které by mohly být ovlivněny během následujících 30 dnů pokud bude zařízení daného dodavatele narušeno hurikánem.
Ukázkový Arcade skript níže ukazuje jak byste mohli použít ve Mapě s nezávislou Feature Service tam pro referenci vedle prostorové vrstvy Knowledge Graph nebo graf nemusí být v mapě vůbec! Dotaz na graf uvnitř Arcade výrazu vrací Dodavatele umístěné uvnitř polygonu vybraného prvku počasí.
Skript níže demonstruje několik užitečných vzorů:
- Používá Arcade funkci geometrie - generalize, aby zjednodušil tvar vybraného polygonu pro lepší výkon prostorového openCypher dotazu
- Ukazuje jak můžete generovat URL pro Knowledge Studio otevírající vybraný prvek nebo odpovídající 'twin' entitu ve znalostním grafu. Můžete také generovat URL pro průzkum dalších souvisejících entit pro hlubší analýzu.
Ukázkový kód: kompletní Arcade skript s dotazem na nezávislou službu knowledge graph
//ID portálové položky služby Knowledge Graph (pid) a URL portálu serveru (změňte tyto)
var pid = "d03d80ca35c94cadb963f845acbd0de1"
var portal_url = " https://[YOUR_ORG_PORTAL_URL].com/portal/"
var kg = KnowledgeGraphByPortalItem(Portal(portal_url), pid)
// Pro zjednodušení polygonu pro lepší výkon používáme funkci 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
}
Jak fungují Arcade vyskakovací okna s grafem
'Podrobný návod','Jak-to'
'Od verze ArcGIS Enterprise 11.3 a ArcGIS Pro 3.3 mohou Arcade expressions'Pop-up používá funkce Arcade graph k odeslání informací z vybraného prvku, entity nebo vztahu do dotazu na graf. Dotaz může vrátit propojené entity, detaily vztahů, vypočtená shrnutí, prostorové shody nebo formátovaný výstup přímo zobrazovaný ve vyskakovacím okně.'
'Pro
For 'Pro , 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.
'Arcade vzor pro dotazování ArcGIS Knowledge Graphs z pop-up oken''Většina Arcade založených pop-up oken pro Knowledge Graph následuje základní vzor: identifikace grafu, definice vstupu jako vybraného prvku či entity, spuštění dotazu na graf, formátování výsledků a návrat slovníku připraveného pro pop-up. Projdeme si každý krok.''Krok 1 — Identifikace knowledge graph pro dotazování'
'V Arcade znamená „připojení“ ke knowledge graph identifikaci grafu který chcete dotazovat. Použijte
Most Arcade-based Knowledge Graph pop-ups follow the same basic pattern: identify the graph, define the selected feature or entity as the input, run a graph query, format the results, and return a pop-up-ready dictionary. Let's walk through each step.
'Pokud je graf uložen v jiném portálu ArcGIS Enterprise mohou být uživatelé při otevření mapy či linkového grafu vyzváni k přihlášení do tohoto portálu.'
'Ujistěte se že datový model grafu—typy entit, typy vztahů a vlastnosti—odpovídají identifikátorům atributům či geometrii používaným ve výrazu pop-up okna.''Ukázkový kód: odkaz na knowledge graph''// Možnost A: dotaz cílového grafu podle portálové položky''var portalUrl = "https://[YOUR_ORG_PORTAL_URL]/portal";''var graphItemId = "[KNOWLEDGE_GRAPH_ITEM_ID]";'
- 'var kg = KnowledgeGraphByPortalItem(Portal(portalUrl), graphItemId);'
- '// Možnost B: dotaz stejného grafu jako má vybraná vrstva'
'var kg = $graph;'
'Krok 2 — Identifikujte prvek entitu nebo geometrii kterou chcete dotazovat'
'Dále rozhodněte co bude pop-up předávat do dotazu na graf: atribut prvku geometrii vybraného prvku nebo vybranou entitu či vztah z knowledge graph.'
'Pro pop-upy vrstev prvků to obvykle znamená:'
'Výběr sdíleného identifikátoru jako GUID asset ID facility ID parcel ID či jiného unikátního atributu.'
'Použití této hodnoty k nalezení odpovídající entity či propojeného kontextu ve znalostním grafu.'
'Vzory dotazování'
'Popis'
'Příklady použití'
- 'Přiřadit podle unikátního ID'
- 'Přiřadit vybraný prvek k entitě grafu pomocí sdíleného ID jako GUID asset ID facility ID či parcel ID.'
'· Získat propojené entity a vlastnosti' | '· Agregovat statistiky o skupinách propojených entit' | '· Agregovat statistiky o vlastnostech těchto propojených entit' |
|---|
'· Najít zaměstnance odpovídající otevřeným pozicím blízkosti a kritériím dovedností.' | 'Přiřadit podle protínajícího se tvaru' | · 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 | Použijte geometrii vybraného prvku jako vstup do dotazu na prostorový graf, který vrací entity protínající, obsažené v nebo související s tímto tvarem. | · Najděte dodavatele dodavatelů v rámci vybraného polygonu. · Agregujte statistiky z vlastností připojených entit nebo vztahů |
Ukázkový kód: zachycení vybraného vstupu
// Vstup založený na atributech z vybraného prvku
var selectedId = $feature.[SHARED_ID_FIELD];
var params = { id: selectedId };
// Vstup z vrstvy grafu z vybrané entity
var selectedGuid = $feature.globalid;
Pro pop-up okna vrstvy grafu je vybraná entita již výchozím bodem, takže výraz může obvykle přímo použít GUID této entity.
Dotazy na graf mohou také použít geometrii vybraného prvku k prostorovému filtrování výsledků, jak je popsáno v příkladu dodavatelského řetězce výše.
// Vstup založený na geometrii z vybraného prvku
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}
Tento krok ukotvuje dotaz k prvku, entitě, vztahu nebo geometrii, kterou uživatel vybral.
Krok 3 — Napište logiku dotazu na graf
Definujte poznatek, který by měl pop-up vrátit. Běžné operace dotazu zahrnují:
- Získávání sousedních entit, jako jsou dodavatelé, aktiva, zařízení, lidé nebo dokumenty.
- Procházení vícekrokových vztahů, jako jsou dodavatelé upstream nebo zákazníci downstream.
- Filtrování podle stavu, časového období, kategorie, typu vztahu nebo prostorové relevance.
- Výpočty souhrnů jako počty, součty, hodnocení, skóre rizika nebo seznamy kategorií.
- Kombinování více dotazů na graf do jedné odpovědi v pop-up okně.
Cílem je převést propojená data grafu do stručné odpovědi, které uživatel rozumí na první pohled.
Ukázkový kód: spusťte dotazy na vztahy a prostorový graf
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 }
);
Krok 4 — Naformátujte výsledky pro pop-up okno
Po vrácení výsledků dotazu je naformátujte pro pop-up. Většina výrazů:
- Vytvoří slovník s pojmenovanými sekcemi nebo formátovaným výstupem.
- Naformátuje výsledky jako text, seznamy, malé tabulky nebo odkazy.
- Vrátí jeden strukturovaný objekt, který může engine pop-up ArcGIS vykreslit.
Zde se surové výsledky grafu stávají čitelným kontextem pro vybraný prvek mapy, entitu nebo prvek link-chartu.
Ukázkový kód: formátování výsledků grafu pro zobrazení
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 = "Nebyly nalezeny žádné související výsledky grafu.";
}
Krok 5 — Vraťte konečný slovník
Nakonec vraťte slovník. ArcGIS přečte vrácený objekt a vykreslí formátovaný text, sekce, tabulky, odkazy nebo ovládací prvky v pop-up okně.
Ukázkový kód: vraťte obsah pop-up okna
return {
'type': 'text',
'text': finalText
};
Formátování výsledků dotazů ArcGIS Knowledge Graph v pop-upech
Výrazy Arcade mohou formátovat výsledky dotazů grafu několika způsoby vhodnými pro pop-up okna. Běžné vzory zahrnují:
- Generování sekcí s rozbalovacími seznamy nebo tabulkami výsledných souvisejících entit odpovídajících vašemu vzoru
- Generování tabulek výsledných entit a statistik vytvořených pomocí dotazu
- Generování dynamických odkazů na entity (od verze 11.4) nebo uložené dotazy (od verze 12.0) v aplikaci Knowledge Studio web app pomocí 'URL Parameters'.
Viz příklad: 'Arcade_Graph_Pop-ups.mp4'
'Kompletní příklad: Kompletní skript Arcade'
'V jednoduchém příkladu (opakovaném výše) dotaz na graf ve výrazu Arcade vrací dodavatele nacházející se uvnitř polygonu vybraného meteorologického prvku. Skript také používá funkci geometrie Arcade - 'generalize'' - pro zjednodušení tvaru vybraného polygonu za účelem zlepšení výkonu prostorového openCypher dotazu.'
'// ID položky portálu služby Knowledge Graph (pid) a URL portálu serveru (změňte tyto)'
'var pid = "d03d80ca35c94cadb963f845acbd0de1"'
'var portal_url = " https://[YOUR_ORG_PORTAL_URL].com/portal/"'
'var kg = KnowledgeGraphByPortalItem(Portal(portal_url), pid)'
' '
'// Pro zjednodušení polygonu pro lepší výkon používáme funkci 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'
' }'
'Toto je příklad dotazu, který byste mohli použít v ','Mapě',' field98':'s nezávislou',' field99':'Feature Service',' field100':'tam pro referenci vedle prostorové vrstvy Knowledge Graph nebo graf nemusí být v mapě vůbec přítomen!',' field101':'Plánuji tento blog doplnit o další kompletní ukázkové dotazy spolu s AI podněty k využití LLM pro tvorbu vlastních Arcade + Graph dotazů. Můžete také jít hlouběji studiem',' field102':'Dokumentace funkcí Arcade Knowledge Graph',' field103':'.'}}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.