Google图表,json格式错误,错误:不是数组
我正在尝试传递一个json文件,以使用Google图表呈现地图。我的脚本代码是:Google图表,json格式错误,错误:不是数组,json,google-visualization,Json,Google Visualization,我正在尝试传递一个json文件,以使用Google图表呈现地图。我的脚本代码是: google.charts.load('current', {'packages': ['geomap']}); google.charts.setOnLoadCallback(drawMap); function drawMap() { var dimension = "Clientes"; var datosMapa; $.ajax({ url:"datosCiudades.json
google.charts.load('current', {'packages': ['geomap']});
google.charts.setOnLoadCallback(drawMap);
function drawMap() {
var dimension = "Clientes";
var datosMapa;
$.ajax({
url:"datosCiudades.json",
dataType: "JSON"
}).done (function(data){
datosMapa = [["City",dimension]];
$.each(data.datosGeograficos,function(){ //
var datoCiudad = [this.City,this[dimension]];
console.log(data.City);
datosMapa.push(datoCiudad);
})
})
console.log(JSON.stringify(datosMapa));
var datas = google.visualization.arrayToDataTable(datosMapa);
var options = {};
options['region'] = 'ES'; //US //154
options['colors'] = [0xFF8747, 0xFFB581, 0xc06000]; //orange colors
options['dataMode'] = 'markers';
var container = document.getElementById('map_canvas');
var geomap = new google.visualization.GeoMap(container);
geomap.draw(datas, options);
};
json文件是:
{
"datosGeograficos": [
{
"City": "Madrid",
"Clientes": 200
},
{
"City": "Leon",
"Clientes": 300
},
{
"City": "Valencia",
"Clientes": 400
},
{
"City": "Toledo",
"Clientes": 500
},
{
"City": "Cuenca",
"Clientes": 600
},
{
"City": "Vigo",
"Clientes": 700
}
]
}
我知道json文件的格式很好,但我总是得到两个答案,但我看不到地图。答案是:“格式错误”(它指的是json文件)和“错误:不是数组”。第二个答案是因为在json文件中找不到数据。
非常感谢。最后,我回答了我自己的问题;我在这里为处于相同情况的其他人提供了解决方案。 完整的脚本是: load('current',{'packages':['geochart']}); google.charts.setOnLoadCallback(drawMap)
最后,我回答了我自己的问题;我在这里为处于相同情况的其他人提供了解决方案。 完整的脚本是: load('current',{'packages':['geochart']}); google.charts.setOnLoadCallback(drawMap)
function drawMap() {
var dimension = "Clientes";
var datosMapa;
$.ajax({
url:"datosCiudades.json",
dataType: "JSON"
}).done (function(data){
datosMapa = [["City","Clientes"]];
$.each(data.datosGeograficos,function(){
var datoCiudad = [this.City,this.Clientes];
console.log("datoCiudad: " + datoCiudad);
datosMapa.push(datoCiudad);
})
var datas = google.visualization.arrayToDataTable(datosMapa);
var options = {
region: 'ES', resolution: 'provinces',
displayMode: 'markers',
backgroundColor: '#F0F8FF', //color de lo que no son los países
datalessRegionColor: '#FFEBCD', //color de los países
defaultColor: '#f5f5f5',
//displayMode: 'text' , Muestra el texto en vez del círculo.
colorAxis: {colors: ['#7FFFD4', 'blue']}
};
var container = document.getElementById('map_canvas');
var geomap = new google.visualization.GeoChart(container);
geomap.draw(datas, options);
})
};