Mám Experience Builder, který obsahuje 6 widgetů Near Me, jež jsou spouštěny pomocí widgetu Select. Když uživatel vybere parcelu pomocí widgetu Select, všechny 6 Near Me spustí vyhledávání této parcely pro různé vrstvy v různých vzdálenostech pro každý Near Me.
Poté mám Arcade skript uvnitř Text widgetu, který má připojeny všechny výstupní datové zdroje z Near Me a tento shrnuje výsledky do pěkného seznamu – protože spojuji dohromady 6 Near Me, je to docela dlouhé a není to pro uživatele příliš přehledné. Požadavek byl, aby měli něco, co mohou jednoduše kopírovat/vkládat, protože tyto výsledky často sdílí s ostatními.
Problém, který mám, je ten, že si nyní uchovává zastaralé výsledky – takže pokud uživatel spustí jednou a vrátí se například 1 oblast ohrožených druhů, a pak se spustí znovu na parcele, která není blízko žádných oblastí ohrožených druhů, stále se zobrazí ten 1 výsledek. Pro nově nalezené vrstvy, které nebyly v předchozím vyhledávání nebo aktualizované počty prvků, se seznam správně upraví. Problém je jen s vrstvami, které byly nalezeny a pak už nejsou nalezeny.
Toto je nový problém a nebyl jsem si vědom jeho výskytu při tvorbě skriptu před rokem. Nedávno jsem musel do nástroje přidat nové vrstvy a tehdy jsem si toho všiml – odstranil jsem ty nové vrstvy, abych zjistil, jestli to je problém, ale děje se to s nimi i bez nich. Vím, že od té doby byly do widgetů Near Me přidány další nastavení – nejsem si jistý, jestli něco musím upravit nebo jestli bych měl v kódu odkazovat na jiný profil při volání vrstev?
Každá pomoc nebo názor je vítán!
Snímky obrazovky a kód níže.
První spuštění, vše funguje podle očekávání:
Druhé spuštění, již není poblíž žádných z těch prvků do 400 m, které se objevily při prvním spuštění, ale stále se zobrazují. Nové položky jsou přidány podle očekávání a vrstvy, které dříve existovaly v posledním seznamu, mají správně aktualizované počty:
// Prázdná proměnná pro uložení výstupu
var output = "";
// Seznam výstupních vrstev ve widgetech Near Me
var layers = [
// Průniky
{name: "Propane RSMP (průnik)", ds: "widget_545_output_proximity_7844902899039525-output"},
{name: "KRCA Regulated Areas (průnik)", ds: "widget_545_output_proximity_7968463111736579-output"},
{name: "ORCA Regulated Area (průnik)", ds: "widget_545_output_proximity_9598497442304497-output"},
{name: "Noise Exposure Forecast (průnik)", ds: "widget_545_output_proximity_08644733937223714-output"},
{name: "Clean Water Act Policies Apply (průnik)", ds: "widget_545_output_proximity_18102019944760728-output"},
{name: "ORCA Floodplain (průnik)", ds: "widget_545_output_proximity_6147625999696148-output"},
{name: "ORCA Lake High Water Level (průnik)", ds: "widget_545_output_proximity_8184674839954809-output"},
{name: "KRCA Floodplain (průnik)", ds: "widget_545_output_proximity_26042425009594083-output"},
{name: "Oak Ridges Moraine Land Use Designation (průnik)", ds: "widget_545_output_proximity_035943006449194126-output"},
{name: "Area of High Mineral Potential (průnik)", ds: "widget_545_output_proximity_5789448905263223-output"},
{name: "Wintering Area (průnik)", ds: "widget_545_output_proximity_5954101991213211-output"},
// Do 120 m
{name: "Peterborough Proposed Bypass (do 120 m)", ds: "widget_544_output_proximity_8750538018314757-output"},
{name: "Areas of Natural and Scientific Interest (ANSI) (do 120 m)", ds: "widget_544_output_proximity_2642195208116723-output"},
{name: "Spawning Area (do 120 m)", ds: "widget_544_output_proximity_9555566998953181-output"},
{name: "Species at Risk Areas (do 120 m)", ds: "widget_544_output_proximity_24353840154442263-output"},
{name: "Species at Risk Observations (do 120 m)", ds: "widget_544_output_proximity_7010013464426786-output"},
{name: "King's Highway (do 120 m)", ds: "widget_544_output_proximity_6057019457101002-output"},
{name: "Evaluated-Provincial Wetlands (do 120 m)", ds: "widget_544_output_proximity_6816526860263106-output"},
{name: "Evaluated-Other Wetlands (do 120 m)", ds: "widget_544_output_proximity_007184386039725488-output"},
{name: "Non-Evaluated Wetlands (do 120 m)", ds: "widget_544_output_proximity_602167485573717-output"},
{name: "Cemetery Data (do 120 m)", ds: "widget_544_output_proximity_6850263073775575-output"},
{name: "Waterbody (do 120 m)", ds: "widget_544_output_proximity_7204693750133947-output"},
{name: "Watercourse (do 120 m)", ds: "widget_544_output_proximity_7919740128394555-output"},
{name: "Woodlands (do 120 m)", ds: "widget_544_output_proximity_3919084483159394-output"},
// Do 300 m
{name: "Aggregate Sand and Gravel (do 300 m)", ds: "widget_546_output_proximity_6767129073346421-output"},
{name: "Karst (do 300 m)", ds: "widget_546_output_proximity_9203990105672937-output"},
{name: "Lake Sensitivity (do 300 m)", ds: "widget_546_output_proximity_3502717978959833-output"},
{name: "Aggregate (Pit) (do 300 m)", ds: "widget_546_output_proximity_21222536163466876-output"},
{name: "Archaeological Sites - CONFIDENTIAL (do 300 m)", ds: "widget_546_output_proximity_018261958119917487-output"},
{name: "Railway (do 300 m)", ds: "widget_546_output_proximity_936438734203539-output"},
// Do 400 m
{name: "Buildings and Lands (do 400 m)", ds: "widget_570_output_proximity_7844902899039525-output"},
{name: "Encroachment (do 400 m)", ds: "widget__570outputproximity7232271423020573output"},
{name: "Power Pole Transmission (within 400m)", ds: "widget_570_output_proximity_5042122413876593-output"},
{name: "Signs (within 400m)", ds: "widget_570_output_proximity_6695595499849716-output"},
{name: "Major Traffic Generator (within 400m)", ds: "widget_570_output_proximity_2693141622377604-output"},
// Within 500m
{name: "Aggregate (Pit/Quarry) (within 500m)", ds: "widget_551_output_proximity_9757872224346482-output"},
// Within 1000m
{name: "Petroleum Well (within 1000m)", ds: "widget_744_output_proximity_18734428093124356-output"},
{name: "Abandoned Mines (within 1000m)", ds: "widget_744_output_proximity_9999940247389159-output"}
];
// Count features and build summary
for (var i in layers) {
var dsid = layers[i].ds; // Get ID of data source
var layerName = layers[i].name; // Get name of layer
var ds = $dataSources[dsid]; // Connect to actual data source
var countFeatures = Count(ds.layer); // Get count of features
// Check if count is greater than 0, if it is, add it to the list
if (countFeatures > 0) {
if (output != "") {
output += TextFormatting.NewLine;
}
output += "(" + countFeatures + ") " + layerName;
}
}
return output;