我使用Google Visualisation API中的GeoChart来创建包含站点使用信息的动态地图。由于度量值较大(8位数字),我需要用逗号分隔这些数字,以使地图更可读。我已经编写了一个函数,在这些数字上添加逗号,但这会导致API绘制地图时出错。
例如,当逗号分隔3列数据中的1列(国家/地区、访问量、唯一访问者)时,该列的标签将在国家/地区工具提示中删除。逗号分隔其中2列会导致整个映射失败,并出现"Expecting 2 columns"错误。这一定是由于没有转义数字字符串中的逗号,从而导致JSON数组中出现错误。我尝试插入'','
而不是常规逗号,但没有成功。有什么解决办法或解决方案吗?
退一步说,我认为解决这个问题的更好方法是使用谷歌可视化中的NumberFormat类格式化原始数据,该类名为google.visualization.NumberFormat。更多信息请点击此处:google.visialization.NnumberFormat
以下是如何将第二列格式化为逗号作为分组分隔符的示例:
function drawVisualization() {
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 200],
['United States', 300],
['Brazil', 400],
['Canada', 500],
['France', 60000000000000000],
['RU', 700]
]);
var formatter = new google.visualization.NumberFormat({pattern:'###,###'} );
formatter.format(data, 1);
var geochart = new google.visualization.GeoChart(
document.getElementById('visualization'));
geochart.draw(data, {width: 556, height: 347, tooltip: {textStyle: {color: 'blue', fontName: 'Tahoma', fontSize: '15'}}});
}
我使用谷歌可视化游乐场来测试它。
更新
修改了geochart.draw行以包含工具提示文本样式。它将设置工具提示中所有文本的样式。无论如何,我还没有看到进行细粒度定制。以下是更多信息:Geochart配置选项
根据CSV文件格式的官方规范,通过将数据用双引号括起来,可以在数据中包含逗号。
基本规则和示例:
任何字段都可以加引号(也就是说,用双引号括起来)。根据以下规则的规定,某些字段必须加引号。
"1997","Ford","E350"
带有嵌入逗号的字段必须加引号。
1997,Ford,E350,"Super, luxurious truck"