html 显示信息,在信息窗口中显示 html 内容和图表

fe71209a35c9e102d9954ad1cf40cd91.png

萧十郎

信息窗口的内容可以是任何字符串或HTML节点。从文档:content类型: 字符串|节点要在信息窗口中显示的内容。这可以是 HTML 元素、纯文本字符串或包含 HTML 的字符串。InfoWindow 将根据内容调整大小。要为内容设置显式大小,请将内容设置为具有该大小的 HTML 元素。要解决您的问题,请创建一个 HTML 节点以添加到同时包含字符串内容和图表的 InfoWindow 内容,并将其添加为节点:var infoWindowNode = document.createElement('div'); // main containing node for InfoWindow  var node        = document.createElement('div');    // for chartvar textNode = document.createElement('div');       // for "string content"textNode.innerHTML = contentString;infoWindowNode.appendChild(textNode);               // append "string content"infoWindowNode.appendChild(node);                   // append chartvar infoWindow  = new google.maps.InfoWindow();var chart       = new google.visualization.PieChart(node);chart.draw(data, options);infoWindow.setContent(infoWindowNode); // add node to InfoWIndow代码片段:var contentString = '

' +  '
' +  '
' +  '

Amol shah

' +  '

12324 - TM

' +  '
' +  '
Reporting :
' +  '
ABM: Jignesh Mehta
' +  '
RBM: Sunil boricha
' +  '
ZM: sachin pawar
' +  '
KPI :
' +  '
' +  '
';function drawChart(marker) {  // Create the data table.  var data = new google.visualization.DataTable();  data.addColumn('string', 'Topping');  data.addColumn('number', 'Slices');  data.addRows([    ['Mushrooms', 3],    ['Onions', 1],    ['Olives', 1],    ['Zucchini', 1],    ['Pepperoni', 2]  ]);  // Set chart options  var options = {    'title': 'Pizza sold @ ' +      marker.getPosition().toString(),    'width': 300,    'height': 150  };  var infoWindowNode = document.createElement('div');  var node = document.createElement('div');  var textNode = document.createElement('div');  textNode.innerHTML = contentString;  infoWindowNode.appendChild(textNode);  infoWindowNode.appendChild(node);  var infoWindow = new google.maps.InfoWindow();  var chart = new google.visualization.PieChart(node);  chart.draw(data, options);  infoWindow.setContent(infoWindowNode /*contentString + node */ );  infoWindow.open(marker.getMap(), marker);}function initialize() {  var mapOptions = {    center: new google.maps.LatLng(-33.891044, 151.275537),    zoom: 10,    mapTypeId: google.maps.MapTypeId.ROADMAP  };  var map = new google.maps.Map(document.getElementById("map_canvas"),    mapOptions);  var marker1 = new google.maps.Marker({    position: mapOptions.center,    map: map  });  google.maps.event.addListener(marker1, 'click', function() {    drawChart(this);  });  google.maps.event.trigger(marker1, 'click');}google.load('visualization', '1.0', {  'packages': ['corechart']});html,body,#map_canvas {  height: 100%;  width: 100%;  padding: 0;  margin: 0;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Tkinter组件加载Pyecharts的HTML图表,可以使用`WebView`组件,它可以在Tkinter加载Web页面并显示HTML内容。但是,这需要安装`pywebview`库。 下面是一个基本的代码示例,演示如何在Tkinter组件加载Pyecharts的HTML图表: ```python import tkinter as tk import pyecharts.options as opts from pyecharts.charts import Bar from pyecharts.render import make_snapshot from pyecharts.commons.utils import JsCode from snapshot_selenium import snapshot as driver import webview root = tk.Tk() root.geometry("800x600") # 创建一个Frame组件,用于显示WebView chart_frame = tk.Frame(root) chart_frame.pack(expand=True, fill=tk.BOTH) # 创建一个Pyecharts图表 bar = Bar() bar.add_xaxis(["A", "B", "C", "D", "E"]) bar.add_yaxis("Series 1", [5, 20, 36, 10, 75]) bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart")) # 生成HTML文件并加载到WebView组件 make_snapshot(driver, bar.render(), "bar.png") html = f'<img src="bar.png">' webview.create_window("My Chart", html=html, width=800, height=600, resizable=True, transparent=False, frameless=False, \ js_api=JsCode("window.close = function(){window.pywebview.api.close();}")) webview.start() root.mainloop() ``` 在这个例子,我们首先创建了一个`Frame`组件,用于显示`WebView`。然后,我们创建了一个Pyecharts的柱状图,并使用`make_snapshot`函数生成HTML文件。接下来,我们使用`webview.create_window`函数创建一个WebView窗口,并将生成的HTML文件加载到其。最后,我们使用`webview.start`函数启动WebView应用,并在Tkinter组件显示。注意,在这个例子,我们使用了一个`JsCode`对象来关闭WebView窗口。如果不需要这个功能,可以将`js_api`参数设置为`None`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值