我开发了一个脚本,可以在其他服务器的网站内显示在一台服务器上生成的图形(基于客户端发送的一些参数)。
看起来像这样:
function drawGraph(selectedID, selectedCountries, selectedYears, per_capita, graphBorder, graphSource, graphDefinition, graphStyle, graphXAxis, renderToGraph, renderToDescription)
{
jQuery(document).ready(function() {
var options = {};
jQuery.getJSON("url here", {selectedCountries: selectedCountries , selectedID: selectedID, selectedYears: selectedYears, per_capita: per_capita, graphBorder: graphBorder, graphSource: graphSource, graphDefinition: graphDefinition, graphStyle: graphStyle, graphXAxis: graphXAxis, renderToGraph: renderToGraph, type: "jsonp"})
.done(function(data)
{
options.chart = data["chart"];
options.tooltip = data["tooltip"];
options.series = data["series"];
options.title = data["title"];
options.subtitle = data["subtitle"];
options.yAxis = data["yAxis"];
options.xAxis = data["xAxis"];
options.legend = data["legend"];
options.exporting = data["exporting"];
options.plotOptions = data["plotOptions"];
options.credits = data["credits"];
var chart = new Highcharts.Chart(options);
}
数据[“series”]包含格式为
的数据 {"name": "Switzerland",
"iso2": "CH",
"data": [
[1950, 10923],
[1951, 20939],
...
]
}
现在,我想提供将数据显示为地图的可能性,而不是显示图表。从我实现了这种可能性的另一个项目(但不是作为API),“系列”对象看起来像这样:
series : [
{
data : data,
mapData: Highcharts.maps['custom/world'],
joinBy: ['iso-a2', 'iso-2']
}]
现在,显然,“数据”对象必须看起来不同 - 不是一个多年的国家,而是一个多年的国家。我必须指出,不是图形而是地图。另外,我需要正确的Javascript / JSON文件。
但是我现在如何解析系列参数?像这样的东西?
options.series = {data: data["series"], mapData: Highcharts.maps['custom/world'], joinBy: ['iso-a2', 'iso-2']};
我应该在“交付方”(生成数据的PHP代码)或客户端上执行此操作吗?
感谢任何提示。希望我能清楚地知道自己想要达到的目标。
答案 0 :(得分:0)
如果您只想创建一个地图(总是相同的形状),那么您可以在JS中设置选项,如下所示:
z-index: -1;
现在,您的API根本不会改变:
var options = {
plotOptions: {
series: {
mapData: Highcharts.maps['custom/world'],
joinBy: ['iso-a2', 'iso-2']
}
}
};