散景单击gmap图上的绘制圆

时间:2019-09-17 21:31:25

标签: bokeh

我正在使用bokeh服务器并使用gmap组件,并使用GeoJsonDataSource在其上显示一些圆圈以填充位置数据。

所以,我有一些东西:

map_options = GMapOptions()
map_options.map_type = 'roadmap'
map_options.zoom = 12
map_options.lat = -1.5
map_options.lng = 50.0
map_source = GeoJSONDataSource() 
hover = HoverTool()
hover.tooltips = [('Location', '@x, @y')]

# I can create the map and draw circles and hover on the circles as follows:
map = gmap(api_key, map_options)
map.circle(x="x", y="y", size=15, source=map_source)
map.add_tools(hover)

# to make the circle clckable
map.add_tools(TapTool())

# try and make a callback 
def callback(attr, old, new):
   # Somehow I need to get the actual underlying data which generated this circle element in the map_source
   print(">")

map_source.on_change('indices', callback)
# The line above gives an error
#  ValueError("attempted to add a callback on nonexistent %s.%s 
#  property" % (self.__class__.__name__, attr))

# Doing the following has no effect
map_source.on_change('selected', callback)

这可以正常工作,我可以看到我的圈子,也可以将其悬停在上面以显示位置。此外,TapTool可以正常工作。因此,我可以单击一个圆圈,其余的淡入背景。但是我不知道如何获取当前选定圆的索引。

1 个答案:

答案 0 :(得分:1)

您要

map_source.selected.on_change('indices', callback)