0

短版- 我想google.visualization.PieChart在构造后修改对象的宽度/高度,但我找不到任何文档指出它是如何完成的。

上下文- 我正在构建一个在谷歌地图上覆盖一堆数据的可视化。在某些纬度/经度坐标处,我想渲染一个饼图标记,详细说明与该地点相关的某些统计数据。

为避免屏幕混乱,我想根据当前缩放级别改变饼图标记的尺寸。这需要我重新渲染当前可见的所有标记,或者最好更改所有标记的宽度/高度属性。

谷歌地图上的饼图

我目前使用以下设置来呈现我的图表:

        legend: {position: "none"},
        width: 200,
        height: 200,
        backgroundColor: "transparent",
        pieSliceText: "none",
        colors: ["#C10001", "#F79647", "#92D051", "#558ED5", "#7F7F7F"],
        tooltip: {textStyle: {fontSize: 14}}

有没有办法在创建图表后更改图表的尺寸?

4

2 回答 2

0

我不认为 API 中有什么东西。不过,使用一点点 Javascript,您应该能够修改包含图表的 SVG 标记的属性。一种可能的方法是添加一个 viewBox 属性,该属性将放大或缩小饼图。

于 2012-12-02T00:41:59.340 回答
0

到目前为止,我唯一可行的解​​决方案是使用更改的宽度/高度设置重新绘制整个图表。此代码段使用 jQuery。

for (var i = 0; i < dataPoints.length; ++i) {
    var drawingOptions = $.extend({}, defaultDrawOptions);
    drawingOptions.width = defaultDrawOptions.width*(currentZoom/defaultZoom);
    drawingOptions.height = defaultDrawOptions.height*(currentZoom/defaultZoom);

    dataPoints[i].chart.draw(dataPoints[i].dataSource, drawingOptions);
}

如您所见,这种半生不熟的解决方案相当笨拙,并且可能会不必要地降低性能。

于 2012-12-03T13:51:52.940 回答