如何用数组而不是值正确填充谷歌图表(地图)
How to properly populate the Google Chart (Map) with arrays instead of values
我想填充这个谷歌地图 - 图表与数据库中的城市,以及每个城市的用户数量。
为此,我使用了以下代码:
<?
$query_city_users = "SELECT DISTINCT(city) FROM users
WHERE approved = 1";
$city_users = mysql_query($query_city_users, $con) or die(mysql_error());
while ($row_city_users = mysql_fetch_assoc($city_users)) {
$query_users_from_city = "SELECT * FROM users
WHERE approved = 1
AND city= '".$row_city_users['city']."'";
$users_from_city = mysql_query($query_users_from_city, $con) or die(mysql_error());
$totalRows_users_from_city = mysql_num_rows($users_from_city);
?>
<?=$row_city_users['city'] ?> -
<?=$totalRows_users_from_city ?> <br>
在 PHP 中,这输出正常...它呼应了城市列表以及每个城市的用户数量。遇到的问题是我的图表脚本尝试填充上述查询中的数据。
<!------ MAP CHARTS------->
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load('visualization', '1', {'packages': ['geochart']});
google.setOnLoadCallback(drawMarkersMap);
function drawMarkersMap() {
var data = google.visualization.arrayToDataTable([
['City', 'Users Number'],
['<?=$row_city_users['city'] ?>', '<?=$totalRows_users_from_city ?>']
]);
var options = {
region: 'IT',
displayMode: 'markers',
colorAxis: {colors: ['lightblue', 'blue'],
backgroundColor: 'blue',
keepAspectRatio: 'true',
}
};
var chart = new google.visualization.GeoChart(document.getElementById('italy'));
chart.draw(data, options);
};
</script>
<? } // end while ?>
使用此代码,地图仅从数组中输出一个城市...我知道我在代码中遗漏了一些东西,所以请帮忙...我的问题是如何使用我查询的数组正确填充谷歌图表?
附言。我已经阅读了有关stackoverflow的相关问题,但是它们对这种情况没有帮助。
这是因为
您的图表对象每次在循环中都是全新的。您可以将以下代码移出循环,如下所示
var rawData = [['City', 'Users Number']];
var options = {
region: 'IT',
displayMode: 'markers',
colorAxis: {colors: ['lightblue', 'blue'],
backgroundColor: 'blue',
keepAspectRatio: 'true',
}
然后将您的 drawMarkersMap 函数替换为
function drawMarkersMap() {
rawData.push(['<?=$row_city_users['city'] ?>', '<?=$totalRows_users_from_city ?>']);
};
然后在循环之外再次使用你应该使用
var data = google.visualization.arrayToDataTable(rawData);
var chart = new google.visualization.GeoChart(document.getElementById('italy'));
chart.draw(data, options);
维护代码的顺序。您可能需要修复一些小错误,因为我没有要测试的数据
相关文章:
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 谷歌地图API没有;t显示地图,如果中心由javascript函数填充
- 在谷歌地图上的交叉路口2,3..圆圈中填充不同的颜色
- 如何从数据库中填充谷歌地图信息框
- 谷歌应用程序-不;t在使用调试运行脚本期间填充电子表格单元格
- CasperJS无法填充谷歌搜索字段
- 如何用数组而不是值正确填充谷歌图表(地图)
- 从谷歌新闻提要动态填充jQueryMobile列表视图
- 谷歌地图适合带填充的边界
- 制作谷歌注释时间线 为缺少的日期填充零
- 谷歌图表中的工具提示,同时使用JSON填充图表有多行
- 将谷歌自动填充功能限制为邮政编码
- 如何在信息窗口中填充下拉列表(谷歌地图API v3)
- 从 JSON 填充谷歌地图标记
- 如何填充谷歌地图数据图层的颜色
- 用单个磁贴填充谷歌地图视口
- 无法在谷歌地图符号 (svg) 标记中填充颜色
- 有效的geoJson未填充谷歌地图标记
- 无法根据在谷歌浏览器上第一个<选择>中选择的值填充<选择>选项
- 从数据库填充谷歌地图信息窗口