0

短いバージョン-構築後にオブジェクトの幅/高さを変更したいのですがgoogle.visualization.PieChart、それがどのように行われるかを示すドキュメントが見つかりません。

コンテキスト-Googleマップに大量のデータをオーバーレイする視覚化を構築しています。特定の緯度/経度座標で、その場所に関連する特定の統計の詳細を示す円グラフマーカーをレンダリングしたいと思います。

画面が乱雑にならないように、現在のズームレベルに基づいて円グラフマーカーのサイズを変更したいと思います。これには、現在表示されているすべてのマーカーを再レンダリングするか、できればすべてのマーカーの幅/高さの属性を変更する必要があります。

Googleマップの円グラフ

現在、チャートをレンダリングするために次の設定を使用しています。

        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 タグの属性を変更できるはずです。考えられる方法の 1 つは、円グラフを拡大または縮小する 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 に答える