I'm using google geo chart in my application. I'm replicating the example given in the link with database data.
https://developers.google.com/chart/interactive/docs/gallery/geochart?hl=en
The data array is
var data = google.visualization.arrayToDataTable([
['City', 'Population', 'Area'],
['Rome', 2761477, 1285.31]])
in format.
I'm giving data in similar pattern to the data variable. but can't see the chart.
var arr=[];
$.ajax({
type: 'POST',
url: "LiveMap",
dataType: "json",
success: function (response) {
for (var i = 0; i < response.length; i++) {
var temp=[];
var str=response[i].split(':');
temp[0]=str[0];
temp[1]=parseInt(str[1]);
temp[2]=parseInt(str[2]);
arr[i]=temp;
}
}
});
google.load('visualization', '1', {'packages': ['geochart']});
google.setOnLoadCallback(drawMarkersMap);
function drawMarkersMap() {
var data = new google.visualization.DataTable();
data.addColumn("string","City");
data.addColumn("number","Population");
data.addColumn("number","Area");
data.addRows(arr);
var options = {
region: 'IT',
displayMode: 'markers',
colorAxis: {colors: ['green', 'blue']}
};
var chart = new google.visualization.GeoChart(document.getElementById('chart_div'));
chart.draw(data, options);
};
</script>
</head>
<body>
<div id="chart_div" style="width: 300px; height: 300px;"></div>
</body>
</html>
The response to ajax call is
result.put("Bhopal:300:200");
result.put("Hyderabad:300:200");
result.put("Vizag:300:200");
result.put("Mysore:300:200");
result.put("Delhi:300:200")
;
try keeping the following code after for loop
google.load('visualization', '1', {'packages': ['geochart']});
google.setOnLoadCallback(drawMarkersMap);
Like this :
$.ajax({
type: 'POST',
url: "LiveMap",
dataType: "json",
success: function (response) {
for (var i = 0; i < response.length; i++) {
var temp=[];
var str=response[i].split(':');
temp[0]=str[0];
temp[1]=parseInt(str[1]);
temp[2]=parseInt(str[2]);
arr[i]=temp;
}
google.load('visualization', '1', {'packages': ['geochart']});
google.setOnLoadCallback(drawMarkersMap);
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.