script<\/CODE><SPAN> <\/SPAN>Tag zu laden. Um dies zu erreichen, können wir<SPAN> <\/SPAN><CODE>dojoConfig<\/CODE><SPAN> <\/SPAN>verwenden, um unser benutzerdefiniertes JS-Paket als Modul zu 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">\/\/ sagen Sie Dojo, wo andere Pakete geladen werden sollen<\/span> dojoConfig<SPAN class="punctuation token">:<\/SPAN> <SPAN class="punctuation token">{<\/SPAN> <SPAN class="keyword token">async<\/span>: <span class="keyword token">true<\/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> &...&
dojoConfig
Nachdem Sie die oben genannten Schritte abgeschlossen haben, können wir nun Chart.js in unserer JavaScript-Datei verwenden...<\/>P>
<span class=\"token function\">require</span>([ "esri/Map", "esri/views/MapView", "esri/PopupTemplate", "esri/layers/FeatureLayer", "esri/widgets/Popup", "esri/tasks/support/Query", "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js", "dojo/domReady!" ], function(Map, MapView, PopupTemplate, FeatureLayer, Popup, Query, Chart){<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>
Im require-Array fügen wir den CDN-Link zur Bibliothek ein. Wir benennen dann das Modul Chart, damit wir später im Code eine neue Instanz davon erstellen können.<\/>P>
Chart
In diesem Beispiel verwende ich einen <\/SPAN>Feature Layer<\/A> <\/SPAN>von Kalifornien aus <\/SPAN>ArcGIS online <\/SPAN><\/A>. Jedes Mal, wenn ich auf einen Landkreis klicke, möchte ich, dass ein Popup Informationen über die Demografie des Gebiets anzeigt. Dafür können wir eine <\/SPAN>Query<\/A> verwenden, die es uns ermöglicht, Informationen aus unserem Feature Layer abzurufen und den Layer räumlich abzufragen, um nur Daten anzuzeigen, wo wir geklickt haben. Sobald das Versprechen erfüllt ist, rufen wir das <\/SPAN>PopUp<\/CODE><SPAN> <\/SPAN>der Ansicht auf und senden die Daten an<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE>. Dies ist eine Funktion, die das Diagramm für uns erstellt. Die<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE><SPAN> <\/SPAN>Funktion wird im nächsten Abschnitt ausführlicher erklärt. Hier ist der Codeausschnitt, der dies zeigt.<\/P><DIV class="" style="color: #24292e; Hintergrundfarbe: #ffffff; Abstand unten: 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= rel="nofollow noopener noreferrer" style="color: #0366d6; background-color: transparent; text-decoration: none;" target="_blank">Dokumentation<SPAN> <\/SPAN><\/A> auf der Chart.js-Website. Für ein Doughnut-Diagramm würde das Objekt wie im folgenden Code-Snippet aussehen.<\/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>Sie können sehen, dass wir im Daten-Array die Ergebnisse setzen, die wir von unserer Feature-Layer erhalten haben. Jedes Ergebnis repräsentiert ein Stück des Doughnut-Diagramms, die backgroundColor-Eigenschaft wird ebenfalls für jeden Ergebniswert gesetzt. Zusätzlich wird das Attribut labels für jedes Element im Daten-Array gesetzt.< /P > Schließlich ist unser letzter Schritt, ein neues Chart-Objekt mit den Eigenschaften Daten und type zu erstellen. Dann geben wir das Chart-Objekt zurück.< /P > var myPieChart = new Chart (canvas,{ type:'doughnut', data:dAtA } ) ; return canvas;< / EMOJI_16 >< span clAss = "line-nUmbers-rows " >< span >< EMOJI_17 >< / EMOJI_17 >< / span >< span >< EMOJI_18 >< / EMOJI_18 >< / span >< span >< EMOJI_19 >< / EMOJI_19 >< / span >< span >< EMOJI_20 >< / EMOJI_20 >< / span >< span >< EMOJI_21 >< / EMOJI_21 >< / span > Sobald das Objekt zurückgegeben wird, sollten wir bei jedem Klick auf einen Landkreis ein Diagramm in unserem Popup sehen, das demografische Informationen anzeigt. Sie können dieses Beispiel auch mit TypeScript erstellen. Hier ist ein Link zum Beispiel , falls Sie sich fragen, wie es in TypeScript aussehen würde.< /P > Tipp: Hier ist ein kurzes Video, das zeigt, wie das Beispiel funktioniert.< /STRONG>
PopUp<\/CODE><SPAN> <\/SPAN>der Ansicht auf und senden die Daten an<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE>. Dies ist eine Funktion, die das Diagramm für uns erstellt. Die<SPAN> <\/SPAN><CODE>setContentInfo<\/CODE><SPAN> <\/SPAN>Funktion wird im nächsten Abschnitt ausführlicher erklärt. Hier ist der Codeausschnitt, der dies zeigt.<\/P><DIV class="" style="color: #24292e; Hintergrundfarbe: #ffffff; Abstand unten: 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= rel="nofollow noopener noreferrer" style="color: #0366d6; background-color: transparent; text-decoration: none;" target="_blank">Dokumentation<SPAN> <\/SPAN><\/A> auf der Chart.js-Website. Für ein Doughnut-Diagramm würde das Objekt wie im folgenden Code-Snippet aussehen.<\/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>
Daten
backgroundColor
labels
type
var myPieChart = new Chart (canvas,{ type:'doughnut', data:dAtA } ) ; return canvas;< / EMOJI_16 >< span clAss = "line-nUmbers-rows " >< span >< EMOJI_17 >< / EMOJI_17 >< / span >< span >< EMOJI_18 >< / EMOJI_18 >< / span >< span >< EMOJI_19 >< / EMOJI_19 >< / span >< span >< EMOJI_20 >< / EMOJI_20 >< / span >< span >< EMOJI_21 >< / EMOJI_21 >< / span >
https://www.screencast.com/users/mogbuchiekwe/folders/Snagit/media/ea3ff749-15b3-4de3-89ce-6e1e1526aeab/embed
Die ArcGIS API for JavaScript macht es super einfach, schöne Diagramme von Drittanbieter-Bibliotheken wie Chart.js zu integrieren. Es gibt viele weitere Bibliotheken, die Sie auf diese Weise in Ihre JavaScript-Anwendung integrieren können und die es Ihnen ermöglichen, leistungsstarke Karten mit zusätzlicher Funktionalität zu erstellen. Besuchen Sie gerne die Seite des GitHub Gist , um das vollständige Beispiel zu sehen.< /P >< /BODY > < /HTML >
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.
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registrieren Sie ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.