我需要使用Amcharts和我的json数据创建突尼斯地图 在我的json / id中的代码在tunisiaLow中 在我的json中的nbre /在tunisialow中的值 我改变了tunisiaLow,就像我的json数据一样但不起作用 我需要这样的思考 pic 请求帮助我 这是我在plunker中的代码plnkr.co/edit/6aDJREhcFYSfM5JW99mX?p=preview
答案 0 :(得分:1)
您的代码最大的问题是您修改了AmCharts映射JS文件,使其完全与库断开。除非您知道自己在做什么,否则不应修改JS文件,并按照creating your own map files tutorial上的说明进行操作。您修改的文件会删除使映射功能所需的id
属性。
理想情况下,您应修改数据以匹配地图格式,而不是相反。通过last ticket,您似乎无法更改数据,因此解决方案与上一个相同 - 重新映射您的数据以符合AmCharts的格式。
原始JS / SVG地图包含每个省的ID列表。由于数据集的标题与原始地图中的标题不完全匹配,因此您需要创建一个查找对象,使用您的标题链接到内部地图ID,例如,使用您的法语标题:
var areaDataMapping = {
"TUNIS": "TN-11",
"ARIANA": "TN-12",
"BEN AROUS": "TN-13",
"MANOUBA": "TN-14",
"NABEUL": "TN-21",
"ZAGHOUAN": "TN-22",
"BIZERTE": "TN-23",
"BEJA": "TN-31",
"JENDOUBA": "TN-32",
"KEF": "TN-33",
"SILIANA": "TN-34",
"KAIROUAN": "TN-41",
"KASSERINE": "TN-42",
"SIDI BOUZID": "TN-43",
"SOUSSE": "TN-51",
"MONASTIR": "TN-52",
"MAHDIA": "TN-53",
"SFAX": "TN-61",
"GAFSA": "TN-71",
"TOZEUR": "TN-72",
"KEBILI": "TN-73",
"GABES": "TN-81",
"MEDENINE": "TN-82",
"TATAOUINE": "TN-83"
};
从那里,您可以重新映射已解析的JSON文件,以创建具有所需属性的正确区域对象数组,例如id
,title
和value
,然后将结果分配给您的代码:
var remappedAreas = AmCharts.parseJSON( areas ).map(function(area) {
return {
id: areaDataMapping[area.libelleFr],
title: area.libelleAr,
code: area.code,
value: area.nbre
}
});
var map = AmCharts.makeChart("...", {
// ...
"dataProvider": {
// ...
"areas": remappedAreas,
// ...
},
// ...
});
这是一个updated plunkr,它使用官方AmCharts JS for Tunisia而不是你的版本。