Comments (4)
can you describe where you are stuck, cause as far as I can see, it is
- fetching the data from the server
- have a topojson file with all the countries
1 .mixing them both to create the required{feature, value}
data structure - feeding that into the library
from chartjs-chart-geo.
Finally code working can you find a way to work this code in an optimum way.
// world map
fetch('https://unpkg.com/world-atlas/countries-110m.json').then((r) => r.json()).then((data) => {
let canvas = document.getElementById('world_map') as
HTMLCanvasElement;
let context = canvas.getContext("2d");
const countries = ChartGeo.topojson.feature(data, data.objects.countries).features;
console.log(ChartGeo.topojson);
// TODO additional
let mycontrylist = [{counry: 'India',count:10},{counry:'South Korea',count:15},{counry:'Vietnam',count:8}];
let display_list = [];
countries.forEach(element => {
let flag:any = {flag:false};
mycontrylist.forEach((elem)=>{
var temp = element.properties.name === elem.counry;
// console.log(temp);
if (temp) {
let t2 = countries.find((d) => d.properties.name === elem.counry);
flag = { feature: t2, flag:true, value:elem.count};
}
})
if (flag.flag) {
console.log(flag);
display_list.push({feature : flag.feature, value: flag.value})
}
else{
display_list.push({feature: element, value: 0 })
}
});
// console.log("contries",countries.map((d) => d.properties.name));
this.world_map = new Chart(context, {
type: 'choropleth',
data: {
labels: countries.map((d) => d.properties.name),
datasets: [{
label: 'Countries',
// data: countries.map((d) => ({feature: d, value: Math.random()})),
data: display_list,
}]
},
options: {
showOutline: true,
showGraticule: true,
legend: {
display: false
},
scale: {
projection: 'equalEarth'
},
geo: {
colorScale: {
display: true,
},
},
}
});
});
from chartjs-chart-geo.
could be rewritten to
let mycontrylist = [{counry: 'India',count:10},{counry:'South Korea',count:15},{counry:'Vietnam',count:8}];
const lookup = new Map(mycontrylist.map((d) => [d.counry, d.count]));
const display_list = countries.map((element) => {
return {
feature: element,
value: lookup.get(element.properties.name) || 0,
};
});
from chartjs-chart-geo.
Thank you for your help Mr Samuel Gratzl.
It's working.
I am closing this issue with a smiling face.
from chartjs-chart-geo.
Related Issues (20)
- bubbleMap with countries HOT 2
- ticks position HOT 1
- error in vite HOT 3
- ChoroplethController is not assignable to ChartComponentLike HOT 3
- TS error on import
- TS Error on import of library HOT 1
- How to have tooltip when no legend is shown HOT 2
- Choropleth doesn't appear HOT 2
- Large values get cut off in choropleth chart HOT 1
- Can't understand how to use in JSX HOT 2
- How to use bubble map with longitude and latitude HOT 4
- Samples on Readme doesn't work, 404 for https://github.com/sgratzl/chartjs-chart-geo/tree/main/samples HOT 3
- Fix the npm example
- Map of Europe HOT 1
- Pacific Centered World Map. HOT 1
- Small countries as circles in choropleth map? HOT 4
- Canvas size is greater than map width? HOT 1
- Any plan for support chart v4~ HOT 1
- How to do a bubbleMap using the world HOT 3
- Broken links HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chartjs-chart-geo.