Suddenly, this code became to misbehave in ONLY android browser today.
Maybe Google changed something to Combo Chart today.
Do Google Charts developers recognize this bug?
And will they fix it soon?

==========
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <title>Combo Chart</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js";></script>
    <script src="https://www.google.com/jsapi";></script>
    <script>
    google.load("visualization", "1", {
        packages: ["corechart"]
    });
    google.setOnLoadCallback(drawVisualization);

    function drawVisualization() {
        $.getJSON("http://www.itdashboard.go.jp/Api/getData.json";, {
            dataset: "ProcurementStatisticsContract",
            organization: "",
            business_id: "",
            field: "contractors",
            sum: "contract_sum"
        }, function(jsonData) {
            var columnData = createProcurementInformationColumn(jsonData);

            var columnChart = new google.visualization.ComboChart(
                document.getElementById("chart"));

            var columnOptions = {
            hAxis: {
                slantedText: true,
                slantedTextAngle: 90,
                viewWindow: {
                    min: Number(columnData.getNumberOfRows())-20
                }
            },
            seriesType: "bars",
            series: {
                1: {
                    type: "line",
                    targetAxisIndex: 1
                }
            }
        };
            columnChart.draw(columnData, columnOptions);
        });
    }

    function createProcurementInformationColumn(jsonData) {
        var data = new google.visualization.DataTable();
        data.addColumn("string", "支出先");
        data.addColumn("number", "支出金額");
        data.addColumn("number", "支出金額割合");

        var cnt = -1;
        var total_cost = 0;
        var cumulus_cost = 0;

        /* 運用等経費累計線のための合計値を計算 */
        $.each(jsonData.raw_data, function(i, v) {
                total_cost += 
Number(v.ProcurementStatisticsContract.sumvalue);
        });

        /* 億以上の予算を持つシステムをセット */
        $.each(jsonData.raw_data, function(i, v) {
            cumulus_cost += 
Number(v.ProcurementStatisticsContract.sumvalue);
            /* 当該年度目標値 */
            if (v.ProcurementStatisticsContract.sumvalue) {
                cnt++;
                data.addRows(1);
                data.setValue(cnt, 0, 
v.ProcurementStatisticsContract.contractors);
                data.setValue(cnt, 1, 
v.ProcurementStatisticsContract.sumvalue / 1000000);
                data.setValue(cnt, 2, Math.round(cumulus_cost * 10000 / 
total_cost) / 100);
            }
        });

        return data;
    }
    </script>
</head>

<body>
    <div id="chart" style="width: 900px; height: 500px;"></div>
</body>

</html>
==========


But, This code works.
I added 4 "<---------Add" lines.


==========
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <title>Combo Chart</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js";></script>
    <script src="https://www.google.com/jsapi";></script>
    <script>
    google.load("visualization", "1", {
        packages: ["corechart"]
    });
    google.setOnLoadCallback(drawVisualization);

    function drawVisualization() {
        $.getJSON("http://www.itdashboard.go.jp/Api/getData.json";, {
            dataset: "ProcurementStatisticsContract",
            organization: "",
            business_id: "",
            field: "contractors",
            sum: "contract_sum"
        }, function(jsonData) {
            var columnData = createProcurementInformationColumn(jsonData);

            var columnChart = new google.visualization.ComboChart(
                document.getElementById("chart"));

            var columnOptions = {
            hAxis: {
                slantedText: true,
                slantedTextAngle: 90,
                viewWindow: {
                    min: Number(columnData.getNumberOfRows())-20
                }
            },
            seriesType: "bars",
            series: {
                1: {
                    type: "line",
                    targetAxisIndex: 1
                }
            }
        };
            columnChart.draw(columnData, columnOptions);
        });
    }

    function createProcurementInformationColumn(jsonData) {
        var data = new google.visualization.DataTable();
        data.addColumn("string", "支出先");
        data.addColumn("number", "支出金額");
        data.addColumn("number", "支出金額割合");

        var cnt = -1;
        var total_cost = 0;
        var cumulus_cost = 0;

        /* 運用等経費累計線のための合計値を計算 */
        $.each(jsonData.raw_data, function(i, v) {
            if(i <= 20){ // <---------Add
                total_cost += 
Number(v.ProcurementStatisticsContract.sumvalue);
            } // <---------Add
        });

        /* 億以上の予算を持つシステムをセット */
        $.each(jsonData.raw_data, function(i, v) {
            if(i <= 20){ // <---------Add
                cumulus_cost += 
Number(v.ProcurementStatisticsContract.sumvalue);
                /* 当該年度目標値 */
                if (v.ProcurementStatisticsContract.sumvalue) {
                    cnt++;
                    data.addRows(1);
                    data.setValue(cnt, 0, 
v.ProcurementStatisticsContract.contractors);
                    data.setValue(cnt, 1, 
v.ProcurementStatisticsContract.sumvalue / 1000000);
                    data.setValue(cnt, 2, Math.round(cumulus_cost * 10000 / 
total_cost) / 100);
                }
            } // <---------Add
        });

        return data;
    }
    </script>
</head>

<body>
    <div id="chart" style="width: 900px; height: 500px;"></div>
</body>

</html> 
==========

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-visualization-api.
For more options, visit https://groups.google.com/d/optout.

Reply via email to