<\/HEAD>
V tomto příkladu používám <\/SPAN>Feature Layer <\/SPAN> Kalifornie z <\/SPAN>ArcGIS online <\/SPAN><\/A>. Pokaždé, když kliknu na okres, chci, aby se zobrazilo vyskakovací okno s informacemi o demografii oblasti. K tomu můžeme použít <\/SPAN>Query, které nám umožní získat informace z našeho Feature Layer a prostorově dotazovat vrstvu tak, aby se zobrazovala data pouze tam, kde jsme klikli. Jakmile je promise vyřešený, zavoláme view's <\/SPAN>PopUp <\/SPAN> a pošleme data do <\/SPAN>setContentInfo. Toto je funkce, která pro nás vytvoří graf. Funkce <\/SPAN>setContentInfo <\/SPAN> bude podrobněji vysvětlena v další sekci. Zde je ukázka kódu, která to ukazuje.<\/P> <SPAN class="keyword token">var</SPAN> query <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Query</SPAN><SPAN class="punctuation token">()</SPAN><SPAN class="punctuation token">;</SPAN>
query.returnGeometry <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">;</SPAN>
query.outFields <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"STATE_NAME"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"WHITE"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"BLACK"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"ASIAN"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"HAWN_PI"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"OTHER"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"HISPANIC"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
query.where <SPAN class="operator token">=</SPAN> <SPAN class="string token">"1=1"</SPAN><SPAN class="punctuation token">;</SPAN>
query.num <SPAN class="operator token">=</SPAN> <SPAN class="number token">50</SPAN><span class='punctuation'>;</span>
<span class='comment'>// Při kliknutí na view dotazujeme feature layer a předáváme výsledky funkci setContentInfo.</span>
view.on(<span class='string'>"click"</span>, (<span>e</span>) => {
query.geometry = e.mapPoint;
featureLayer.queryFeatures(query).then((results) => {
if(results.features[0].attributes.STATE_NAME === "California"){
view.popup.visible = true;
view.popup.open({
title: "Příklad koláčového grafu",
content: setContentInfo(results.features[0].attributes)
});
}
});
});<span class='line-numbers-rows'><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span>Vytvoření grafu pomocí Chart.jsNyní přidáme modul <\/SPAn>Chart, který jsme dříve inicializovali. V předchozím kódu jsme nastavili parametr <\/SPAn>content, na funkci nazvanou <\/SPAn>setContentInfo, do které jsme předali data. V následujícím úryvku kódu vytvoříme tuto funkci a použijeme ji k inicializaci našich grafů uvnitř vyskakovacího okna. Nejprve vytvoříme nový prvek <\/SPAn>canvas, kterému dáme ID <\/SPAn>ID <\/SPAn>CZmyChart.
<Span Class = "keyword Token ">var </Span > canvas<span Class = "operator Token ">= </Span > document.createElement(<Span Class = "string Token ">'canvas'</Span >)<Span Class = "punctuation Token ">;</Span >
canvas.id<span Class = "operator Token ">= </Span ><Span Class = "string Token "> "myChart " </Span ><Span Class = "punctuation Token ">;</Span ><<EMOJI_21 > ><Span Class = "line-numbers-rows"><Span > <<EMOJI_22 > >< / Span ><Span > <<EMOJI_23 > >< / Span ></Span ></Code ></Pre ></Div ><P style = "color:#24292e;background-color:#ffffff;margin-bottom:16px ; ">Poté nastavíme objekt struktury dat (Data Structure) s našimi vlastními daty. V tomto konkrétním případě používáme koláčový graf (doughnut graph), který má odlišnou strukturu dat než čárový graf (line graph). Pro více informací o různých typech grafů, které můžete použít, prosím navštivte následující<A href = "http://www.chartjs.org/docs/latest/charts" rel="nofollow noopener noreferrer" style="color: #0366d6; background-color: transparent; text-decoration: none;" target="_blank">dokumentace<SPAN> <\/SPAN><\/A> na webu Chart.js. Pro graf typu doughnut by objekt vypadal jako následující ukázka kódu níže.<\/P><DIV class="" style="color: #24292e; background-color: #ffffff; margin-bottom: 16px;"><PRE class="lia-code-sample line-numbers language-none"><CODE><SPAN class="keyword token">var<\/SPAN> data <SPAN class="operator token">=<\/SPAN> <SPAN class="punctuation token">{<\/SPAN>
datasets<SPAN class="punctuation token">:<\/SPAN><SPAN class="punctuation token">[<\/SPAN><SPAN class="punctuation token">{<\/SPAN>
data<SPAN class="punctuation token">:<\/SPAN> <SPAN class="punctuation token">[<\/SPAN>results<SPAN class="punctuation token">.<\/SPAN>ASIAN<SPAN class="punctuation token">,<\/SPAN> results<SPAN class="punctuation token">.<\/SPAN>BLACK<SPAN class="punctuation token">,<\/SPAN> results<SPAN class="punctuation token">.<\/SPAN>HAWN_PI<SPAN class="punctuation token">,<\/SPAN> results<SPAN class="punctuation token">.<\/SPAN>HISPANIC<SPAN class="punctuation token">,<\/SPAN>
results<SPAN class="punctuation token">.<\/SPAN>OTHER<SPAN class="punctuation token">,<\/SPAN> results<SPAN class="punctuation token">.<\/SPAN>WHITE<SPAN class="punctuation token">]<\/SPAN><SPAN class="punctuation token">,<\/SPAN>
backgroundColor<SPAN class="punctuation token">:<\/SPAN> <SPAN class="punctuation token">[<\/SPAN><SPAN class="string token">"#4286f4"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">"#41f4be"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">"#8b41f4"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">"#e241f4"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">"#f44185"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">"#f4cd41"<\/Span><Span class=\"punctuation token\">]<\/Span>
<Span class=\"punctuation token\">}<\/Span><Span class=\"punctuation token\">]<\/Span><Span class=\"punctuation token\">,<\/Span>
labels<Span class=\"punctuation token\">:<\/Span> <Span class=\"punctuation token\">[<\/Span>
<Span class=\"string token\">'Asian'<\/Span><Span class=\"punctuation token\">,<\/Span>
<Span class=\"string token\">'Black'<\/Span><Span class=\"punctuation token\">,<\/Span>
<Span class=\"string token\">'Hawaiian'<\/Span><Span class=\"punctuation token\">,<\/Span>
<Span class=\"string token\">'Hispanic'<\/Span><Span class=\"punctuation token\">,<\/Span>
<Span class=\"string token\">'Other'<\/Span><Span class=\"punctuation token\">,<\/Span>
<Span class=\"string token\">'White'<\/Span>
<Span class=\"punctuation token\">]<\/Span>
<Span class=\"punctuation token\">}<\/Span><Span class=\"punctuation token\">;<\/Span><Span class=\"line-numbers-rows\"><Span><\/span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span>Vidíte, že v poli data nastavujeme výsledky, které jsme získali z naší feature vrstvy. Každý výsledek bude představovat jeden díl grafu doughnut, také je nastaven atribut backgroundColor pro každou hodnotu výsledku. Navíc je atribut labels nastaven pro každý prvek v poli data.
Nakonec je naším posledním krokem vytvořit nový objekt Chart s vlastnostmi data a type. Poté vrátíme objekt Chart.
Jakmile je objekt vrácen, měli bychom v našem pop-up okně vidět graf zobrazující demografické informace pokaždé, když klikneme na okres. Tento příklad můžete také vytvořit pomocí TypeScript. Zde je odkaz na ukázku, pokud vás zajímá, jak by to vypadalo v TypeScriptu.
Doporučení: Zde je krátké video ukazující, jak vzorek funguje.< /STRONG ></ SPan ></ P >https://www.screencast.com/users/mogbuchiekwe/folders/Snagit/media/ea3ff749-15b3-4de3-89ce-6e1e1526aeab/embed
< /BODY >< /HTML >