Карты Google сохраняют увеличенное изображение в формате PNG

Я использую Google Charts для создания линейной диаграммы, и я использую

explorer: {actions: ['dragToZoom', 'rightClickToReset'] 

чтобы пользователь мог увеличить ограничивающую рамку. Я хотел бы иметь возможность сохранить увеличенное изображение в формате PNG. Для этого я пытаюсь найти значения HAxis на левом и правом краях диаграммы и значения VAxis на верхнем и нижнем краях диаграммы:

var cli = chart.getChartLayoutInterface();
var hl = cli.getHAxisValue(cli.getChartAreaBoundingBox().left);
var hr = cli.getHAxisValue(cli.getChartAreaBoundingBox().left + cli.getChartAreaBoundingBox().width);
var vt = cli.getVAxisValue(cli.getChartAreaBoundingBox().top);
var vb = ??

Затем я использую их в своих опциях, чтобы перестроить диаграмму с этими ограничениями:

var options = {
    width: 1430,
    height: 563,
    hAxis: {
        title: 'X-Axis',
        viewWindow: { min: hl, max: hr}
    },
    explorer: {actions: ['dragToZoom', 'rightClickToReset'], keepInBounds: true, maxZoomIn: .01 },
    curveType: "function",
    vAxis: {
        logScale: log1, 
        title: "Y-Axis", 
        titleTextStyle: {color: '#0000FF'}, 
        textStyle: {color: '#0000FF'}, 
        baselineColor: '#0000FF', 
        viewWindow: { min: vb, max: vt}}
    },
    title: "Figure 1"
};

var chart = new google.visualization.LineChart(document.getElementById('plot'));
chart.draw(data, options);
drawpng = chart.getImageURI();
return drawpng;

Мои значения для левого, правого и верхнего края работают правильно, но я не могу понять, как определить нижний край. я уже пробовал

var vb = cli.getVAxisValue(cli.getChartAreaBoundingBox().top - cli.getChartAreaBoundingBox().height)

а также

var vb = cli.getVAxisValue(cli.getChartAreaBoundingBox().height)

а также

var vb = cli.getVAxisValue(cli.getChartAreaBoundingBox().height - cli.getChartAreaBoundingBox().top)

но ни один из них не дает мне правильное значение.

Кто-нибудь знает, как это сделать, или другой способ сохранить увеличенную диаграмму? Спасибо!


person abe678    schedule 03.02.2015    source источник


Ответы (1)


Я заставил его работать, используя

cli.getVAxisValue(cli.getChartAreaBoundingBox().top+cli.getChartAreaBoundingBox().height)

Я не понял, что позиция рассчитывается сверху, а не снизу.

person abe678    schedule 13.02.2015