Javascript Google Linechart在Google地图信息窗口中不显示y轴标签或图例标签
我很难让图例标签和y轴标签显示在谷歌折线图上。如果图表不在google map信息窗口中,它可以正常工作,但一旦我将其放入信息窗口中,我就无法使标签显示在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
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
事件。相关问题: