Javascript Google Linechart在Google地图信息窗口中不显示y轴标签或图例标签

Javascript Google Linechart在Google地图信息窗口中不显示y轴标签或图例标签,javascript,google-maps,google-visualization,Javascript,Google Maps,Google Visualization,我很难让图例标签和y轴标签显示在谷歌折线图上。如果图表不在google map信息窗口中,它可以正常工作,但一旦我将其放入信息窗口中,我就无法使标签显示在y轴和图例上。下面是我创建图表的函数: function drawChart(marker, title, description) { historySets = [{ "windSpeed": 0, "windGust": 0, "pressure": 2

我很难让图例标签和y轴标签显示在谷歌折线图上。如果图表不在google map信息窗口中,它可以正常工作,但一旦我将其放入信息窗口中,我就无法使标签显示在y轴和图例上。下面是我创建图表的函数:

function drawChart(marker, title, description) {

historySets = [{
    "windSpeed": 0,
    "windGust": 0,
    "pressure": 29.34000015258789,
    "time": "2021-04-14T09:48:00"
}, {
    "windSpeed": 0,
    "windGust": 5,
    "pressure": 29.329999923706055,
    "time": "2021-04-14T09:43:00"
}, {
    "windSpeed": 1,
    "windGust": 5,
    "pressure": 29.329999923706055,
    "time": "2021-04-14T09:38:00"
}, {
    "windSpeed": 2,
    "windGust": 4,
    "pressure": 29.329999923706055,
    "time": "2021-04-14T09:32:55"
}];
console.log(historySets);

// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn({
    type: 'datetime',
    id: 'time',
    label: 'Date'
});
data.addColumn({
    type: 'number',
    id: 'windSpeed',
    label: 'Wind Speed'
});
data.addColumn({
    type: 'number',
    id: 'windGust',
    label: 'Gust Speed'
});

var rows = [];

historySets.forEach(element => {
    var date = new Date(element.time);
    rows.push([date, element.windSpeed, element.windGust]);
});

data.addRows(rows);

var options = {
    title: 'Last 6 Hours',
    hAxis: {
        format: 'hh',
        gridlines: {
            count: 10
        }
    },
    legend: {
        position: 'bottom'
    },
};

var formatDate = new google.visualization.DateFormat({
    prefix: 'Time: ',
    pattern: "dd MMM HH:mm",
});

formatDate.format(data, 0);

var infoWindowNode = document.createElement('div'); // for info window
var chartnode = document.createElement('div'); // for chart
var textNode = document.createElement('div'); // for text
textNode.innerHTML = '<h4>' + title + '</h4>' + '<p>' + description + '</p>';

infoWindowNode.appendChild(textNode);

var infoWindow = new google.maps.InfoWindow();
var chart = new google.visualization.LineChart(chartnode);

infoWindowNode.appendChild(chartnode);

chart.draw(data, options);
infoWindow.setContent(infoWindowNode);
infoWindow.open(marker.getMap(), marker);
}
功能绘图图(标记、标题、说明){
历史记录集=[{
“风速”:0,
“阵风”:0,
“压力”:29.34000015258789,
“时间”:“2021-04-14T09:48:00”
}, {
“风速”:0,
“阵风”:5,
“压力”:29.32999293706055,
“时间”:“2021-04-14T09:43:00”
}, {
“风速”:1,
“阵风”:5,
“压力”:29.32999293706055,
“时间”:“2021-04-14T09:38:00”
}, {
“风速”:2,
“阵风”:4,
“压力”:29.32999293706055,
“时间”:“2021-04-14T09:32:55”
}];
console.log(历史记录集);
//创建数据表。
var data=new google.visualization.DataTable();
data.addColumn({
键入:“日期时间”,
id:'时间',
标签:“日期”
});
data.addColumn({
键入:“编号”,
id:'风速',
标签:“风速”
});
data.addColumn({
键入:“编号”,
id:“阵风”,
标签:“阵风速度”
});
var行=[];
historySets.forEach(元素=>{
var日期=新日期(元素时间);
行推送([date,element.windSpeed,element.windGust]);
});
data.addRows(行);
变量选项={
标题:“最后6小时”,
哈克斯:{
格式:“hh”,
网格线:{
计数:10
}
},
图例:{
位置:'底部'
},
};
var formatDate=new google.visualization.DateFormat({
前缀:“时间:”,
图案:“dd MMM HH:mm”,
});
formatDate.format(数据,0);
var infoWindowNode=document.createElement('div');//用于信息窗口
var chartnode=document.createElement('div');//用于图表
var textNode=document.createElement('div');//用于文本
textNode.innerHTML=''+title+''+''+description+'

'; infoWindowNode.appendChild(textNode); var infoWindow=new google.maps.infoWindow(); var chart=新的google.visualization.LineChart(chartnode); appendChild(chartnode); 图表绘制(数据、选项); setContent(infoWindowNode); 打开(marker.getMap(),marker); }


这是信息窗口中图表的当前输出。缺少图例标签和y轴标签。我曾尝试将尺寸设置为更大的宽度和高度(各1000),但我尝试的所有方法都无法显示标签。

如评论中所述。这是我在图表的容器隐藏时绘制图表的结果。幸运的是,有一个domready事件。将函数更改为侦听偶数调用图表。draw()修复了此问题

infoWindow.setContent(infoWindowNode);
infoWindow.open(marker.getMap(), marker);

google.maps.event.addListener(infoWindow, 'domready', function () {
    chart.draw(data, options);
});

这是在图表的容器处于隐藏状态时绘制图表的结果,请等待信息窗口显示后再进行第一次绘制…我尝试将“chart.draw(data,options);”移动到我的“infoWindow.open(marker.getMap(),marker);”调用之后,但得到了相同的结果。是否有更好的方法等待信息窗口显示?信息窗口有一个
domready
事件。相关问题: