问题描述
我想使用散景的 TapTool
在点击每个 holoviews.polygons
时打开不同的 URL。在散景中如何工作的一个完美示例是点数据的 bokeh docs。但是,当我尝试在全息视图中使用它时,它似乎不起作用。
我能开始工作的最接近的事情是:
import geoviews as gv
from bokeh.models import OpenURL,TapTool
url = 'https://google.@domain'
taptool = TapTool()
taptool.callback = OpenURL(url=url)
p = gv.polygons(data,vdims=['Area','domain'],crs=ccrs.PlateCarree).options(alpha=1,tools=['hover',taptool])
p
情节很好地显示,并且 URL 打开的触发也正常工作,但是“@domain”的解析不起作用并且 URL 是“google.???” 这里有什么问题?
解决方法
不确定;当我为这个荒谬的例子做这件事时似乎工作:
import holoviews as hv,numpy as np
hv.extension("bokeh")
def rectangle(x=0,y=0,width=.05,height=.05):
return np.array([(x,y),(x+width,y+height),(x,y+height)])
polys = hv.Polygons([{('x','y'): rectangle(x,'level': z}
for x,y,z in np.random.rand(100,3)],vdims='level')
url = 'https://google.@level'
taptool = TapTool()
taptool.callback = OpenURL(url=url)
polys.opts(color='level',line_width=1,tools=['hover',taptool])