Vytváření popisků linií mezi dvěma body pomocí jazyka Arcade

487
0
05-10-2023 12:59 AM
Labels (2)
DavidDaveNovak
Esri Contributor
0 0 487

Výrazový jazyk Arcade se v systému ArcGIS používá na mnoha místech, zejména v ArcGIS Pro a ve webových aplikacích. Pro seznámení s ním doporučuji jeden z našich starších článků Výrazový jazyk Arcade.

Tvorba popisků 

Na ArcGIS Online jsem si připravil dvě vrstvy, bodovou vrstvu s krajskými městy a liniovou vrstvu, která znázorňuje přímou trasu mezi nimi. Nyní bych chtěl ve webové mapě vytvořit popisky pro linie, tak aby obsahovaly názvy měst, mezi kterými vedou. Použijeme pro to právě jazyk Arcade.

DavidDaveNovak_0-1683279302594.png

1. Otevřeme vlastnosti vrstvy prvků a na panelu Data vybereme požadovanou vrstvu pro úpravy.

DavidDaveNovak_1-1683279739333.png

 

2. Pokud bychom neměli nemáte pole typu String pro nové popisky připravené, musíme jej nyní vytvořit. 

3. Kliknutím levého tlačítka na název pole v záhlaví tabulky vyvoláme nabídku pro operace s prvky. Vybereme možnost Vypočítat a pak možnost Arcade.

DavidDaveNovak_2-1683279944246.png

 

Výraz v Arcade

  • Definování bodové vrstvy

(Jednotlivé proměnné lze pro urychlení vybírat rovnou z nabídky v pravé straně obrazovky) 

 

var body = FeatureSetByName($datastore,<nazev_vrstvy>)

 

  • Příprava blízkého okolí pro identifikaci propojení.

 

var okoli = buffer($feature, .1)

 

  •  Identifikování, zda dochází k protnutí mezi bodem a linií.

 

var xy = Intersects(body, okoli)

 

  • Následující blok kódu prochází jednotlivá spojení a používá názvy měst pro složení finálního popisku.

 

var linie_nazev = ''
for (var a in xy){
var body_nazev = DomainName(a, "nazev")
linie_nazev += body_nazev + " - "}

 

  • V posledním kroku získáváme konečný složený textový řetězec, upravený tak, aby na konci nebyla pomlčka navíc. 

 

return left(linie_nazev, count(linie_nazev) -2);

 

 

Výsledný skript je možné pomocí testovacího tlačítka vyzkoušet:

DavidDaveNovak_3-1683280974413.png

Před samotným potvrzením výrazu doporučuji jeho zkopírování a uložení pro budoucí použití. 

Po provedení výpočtu můžeme v tabulce provést celkovou kontrolu výsledku.

DavidDaveNovak_4-1683281518775.png

V Map Vieweru následně zapneme popisky linií, které budou toto pole využívat.

DavidDaveNovak_5-1683281651496.png

Závěrem bych vás rád okázal na další podobné články na téma Arcade, které již na tomto blogu vyšly.