script<\/CODE><SPAN> <\/SPAN>tag. Om dit te bereiken kunnen we<SPAN> <\/SPAN><CODE>dojoConfig<\/CODE><SPAN> <\/SPAN>gebruiken om ons aangepaste JS-pakket als module te laden.<\/P><DIV class="" style="color: #24292e; background-color: #ffffff; margin-bottom: 16px;"><PRE class="lia-code-sample line-numbers language-none"><CODE><SPAN class="language-javascript script token"><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>script<\/span><span class="punctuation token">><\/span><\/span> <span class="keyword token">const<\/span> options <span class="operator token">=<\/span> <span class="punctuation token">{<\/span> <span class="comment token">\/\/- vertel Dojo waar andere pakketten geladen moeten worden<\/span> dojoConfig<span class="punctuation token">:<\/span> <span class="punctuation token">{<\/span> <span class="keyword token">async<\/span><span class="punctuation token">:<\/span> <span class="keyword token">true<\/span><span class="punctuation token">,<\/span> packages<span class="punctuation token">:<\/span> <span class="punctuation token">[<\/span> <span class="punctuation token">{<\/span> location<span class="punctuation token">:<\/span> <span class="string token"><span>'<\/span><a class="jive-link-external-small" href="https:\/\/cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js" target="_blank">https:\/\/cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js<\/a><span>'<\/span><\/span><span class="punctuation token">,<\/span> & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp name<span class= "punctuation token ">:< \/ span > < span class = "string token " > 'Chart' < \/ span >   ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;}   ;& nb sp ;& nb sp ;]   ;& nb sp ;}   ;} </script> <script src=\"https:\/\ /js.arcgis.com/4.7/\">< /script >< / 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 >< / code >< / pre >< / div >< P style = " color : #24292e ; background-color : #ffffff ; margin-bottom : 16px ; " > Zoals je kunt zien in de bovenstaande voorbeeldcode, gaan we Dojo vertellen om een module te laden vanaf een Content Delivery Network (CDN). In dit geval gebruiken we het CDN dat Chart.js voor ons levert. Je kunt de bestanden ook installeren via een pakketbeheerder zoals npm of Bower. Je kunt de verschillende manieren om Chart.js te installeren leren via hun<SPAN>&nb sp;< \/ SPAN >< A href = "http : \/ \/www.chartjs.org \/docs \/latest \/getting-started \/installation.html " rel = "nofollow noopener noreferrer " style = "color : #0366d6 ; background-color : transparent ; text-decoration : none ; " target = " _blank " > Installatiedocumentatie < \/ A > . Om mogelijke fouten te voorkomen, zorg ervoor dat de<CODE>dojoConfig
In dit voorbeeld gebruik ik een <\/SPAN>Feature Layer<\/A> <\/SPAN>van Californië van <\/SPAN>ArcGIS online <\/SPAN><\/A>. Elke keer dat ik op een county klik, wil ik dat er een pop-up verschijnt met informatie over de demografie van het gebied. Hiervoor kunnen we een <\/SPAN>Query<\/A> gebruiken, waarmee we informatie uit onze Feature Layer kunnen halen en ruimtelijk de laag kunnen doorzoeken om alleen gegevens te tonen waar we hebben geklikt. Zodra de belofte is opgelost, roepen we de view's <\/SPAN>PopUp<\/CODE><SPAN> <\/SPAN>aan en sturen de gegevens naar<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE>. Dit is een functie die de grafiek voor ons zal maken. De<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE><SPAN> <\/SPAN>functie wordt in de volgende sectie nader uitgelegd. Hier is het codefragment dat dit laat zien.<\/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> 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><SPAN class="punctuation token">;<\/SPAN> query<SPAN class="punctuation token">.<\/SPAN>returnGeometry <SPAN class="operator token">=<\/SPAN> <SPAN class="keyword token">true<\/SPAN><SPAN class="punctuation token">;<\/SPAN> query<SPAN class="punctuation token">.<\/SPAN>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= rel="nofollow noopener noreferrer" style="color: #0366d6; background-color: transparent; text-decoration: none;" target="_blank">documentatie<SPAN> <\/SPAN><\/A> op de Chart.js-website. Voor een doughnut-grafiek zou het object eruitzien als de onderstaande codefragment.<\/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> <span class="string token">'Asian'</span>, <span class="string token">'Black'</span>, <span class="string token">'Hawaiian'</span>, <span class="string token">'Hispanic'</span>, <span class="string token">'Other'</span>, <span class="string token">'White'</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>Je kunt zien dat in de data array, we de resultaten instellen die we van onze feature layer hebben gekregen. Elk resultaat vertegenwoordigt een stuk van de doughnut-grafiek, de backgroundColor wordt ook ingesteld voor elke resultaatwaarde. Daarnaast wordt het labels attribuut ingesteld voor elk item in de data array.
PopUp<\/CODE><SPAN> <\/SPAN>aan en sturen de gegevens naar<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE>. Dit is een functie die de grafiek voor ons zal maken. De<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE><SPAN> <\/SPAN>functie wordt in de volgende sectie nader uitgelegd. Hier is het codefragment dat dit laat zien.<\/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> 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><SPAN class="punctuation token">;<\/SPAN> query<SPAN class="punctuation token">.<\/SPAN>returnGeometry <SPAN class="operator token">=<\/SPAN> <SPAN class="keyword token">true<\/SPAN><SPAN class="punctuation token">;<\/SPAN> query<SPAN class="punctuation token">.<\/SPAN>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= rel="nofollow noopener noreferrer" style="color: #0366d6; background-color: transparent; text-decoration: none;" target="_blank">documentatie<SPAN> <\/SPAN><\/A> op de Chart.js-website. Voor een doughnut-grafiek zou het object eruitzien als de onderstaande codefragment.<\/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> <span class="string token">'Asian'</span>, <span class="string token">'Black'</span>, <span class="string token">'Hawaiian'</span>, <span class="string token">'Hispanic'</span>, <span class="string token">'Other'</span>, <span class="string token">'White'</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>
data
backgroundColor
labels
Ten slotte is onze laatste stap om een nieuw Chart object te maken met de data en type eigenschappen. Daarna retourneren we het Chart var myPieChart = new Chart(canvas,{ type: 'doughnut', data: data }); return canvas;161718192021Zodra het object wordt geretourneerd, zouden we een grafiek in onze pop-up moeten krijgen die demografische informatie toont telkens wanneer we op een county klikken. Je kunt dit voorbeeld ook maken met TypeScript. Hier is een link naar het voorbeeld, als je je afvraagt hoe het eruit zou zien in TypeScript.
Chart
type
var myPieChart = new Chart(canvas,{ type: 'doughnut', data: data }); return canvas;161718192021
Tip: Hier is een korte video die laat zien hoe het voorbeeld werkt.
https://www.screencast.com/users/mogbuchiekwe/folders/Snagit/media/ea3ff749-15b3-4de3-89ce-6e1e1526aeab/embed
De ArcGIS API for JavaScript maakt het super eenvoudig om prachtige grafieken te integreren van externe bibliotheken zoals Chart.js. Er zijn nog veel meer bibliotheken die je op deze manier in je JavaScript-toepassing kunt integreren, waardoor je krachtige kaarten met extra functionaliteit kunt maken. Voel je vrij om naar de GitHub Gist paginapagina voor het volledige voorbeeld.
I have successfully integrated Chart.js into may application, but have not been able to get the zooming/panning to wok on my line chart. I've tried many options, etc. I even tried disabling the wheel zoom for map navigation. I'm not getting any errors, it just doesn't work.
has anyone gotten this to work?
I am using typescript to develop applications using the ArcGIS Javascript API. When you import chart.js as above (importing using a script tag or dojoConfig), the type definitions are not available when coding. Alternatively, when you import the types using ...
import Chart from 'chart.js';
after running ...
npm i --save-dev @types/chart.js npm i --save chart.js
a 404 error occurs at runtime, stating that "<websiteUrl>/chart.js is not found". The site is smart enough to not look for "esri/..." modules in the root of the url. How can I make it just as smart with respect to the "chart.js" module? Simply adding ...
{ name: "chart.js", location: }
to window.dojoConfig.packages does not change anything - I still get a 404 error at runtime. 😞If you have insight, please help!
* Update *So it looks like dojoConfig does not like package names containing ".". Modifying the name of the type definition file (found in node_modules/@types) from "chart.js" to "chartjs" did the trick, along with this addition window.dojoConfig.packages:
{ name: "chartjs", location: "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/", main: "Chart" }
Super cool! A perfect example of why pie charts are terrible obviously but cool nonetheless. I'm going to have a go.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.