Python 在Bokeh Google地图上离线回复

Python 在Bokeh Google地图上离线回复,python,google-maps,bokeh,Python,Google Maps,Bokeh,我想创建一个bokeh gmap图形和一些绘制的圆圈,保存该图形的地图背景,然后在同一地图背景上创建带有新圆圈的脱机图形。例如: import bokeh.plotting as bk from bokeh.models import GMapOptions from bokeh.io import output_file, show, save output_file('test.html', , mode='inline') api_key = #insert your key here

我想创建一个bokeh gmap图形和一些绘制的圆圈,保存该图形的地图背景,然后在同一地图背景上创建带有新圆圈的脱机图形。例如:

import bokeh.plotting as bk
from bokeh.models import GMapOptions
from bokeh.io import output_file, show, save
output_file('test.html', , mode='inline')

api_key = #insert your key here
mid_lat = 39.8283
mid_lon = 98.5795
map_options = GMapOptions(lat = mid_lat, lng = mid_lon, map_type="satellite", zoom=15)
lons = [mid_lon + 0.001, mid_lon - 0.001, mid_lon]
lats = [mid_lat + 0.001, mid_lat - 0.001, mid_lat]

p = bk.gmap(google_api_key = api_key, map_options = map_options)
p.circle(x = lons, y = lats, color = 'white') 
save(p, 'test.html')
show(p)
 lons = [mid_lon + 0.003, mid_lon - 0.003, mid_lon]
 lats = [mid_lat + 0.003, mid_lat - 0.003, mid_lat]
给出以下内容,在地图上绘制三个白点:

现在,我想离线使用相同的地图图像——缩放级别,x和y域不变。但我想策划新的圈子。例如:

import bokeh.plotting as bk
from bokeh.models import GMapOptions
from bokeh.io import output_file, show, save
output_file('test.html', , mode='inline')

api_key = #insert your key here
mid_lat = 39.8283
mid_lon = 98.5795
map_options = GMapOptions(lat = mid_lat, lng = mid_lon, map_type="satellite", zoom=15)
lons = [mid_lon + 0.001, mid_lon - 0.001, mid_lon]
lats = [mid_lat + 0.001, mid_lat - 0.001, mid_lat]

p = bk.gmap(google_api_key = api_key, map_options = map_options)
p.circle(x = lons, y = lats, color = 'white') 
save(p, 'test.html')
show(p)
 lons = [mid_lon + 0.003, mid_lon - 0.003, mid_lon]
 lats = [mid_lat + 0.003, mid_lat - 0.003, mid_lat]
有没有办法保存人物的背景图像并将其加载到新的绘图中?看起来GMap并不支持这一点,但是在python中是否有一个聪明的解决方法来实现这一点呢

看起来我可能需要保存我自己的磁贴提供商(如图所示),但我认为我误解了正确的方法,然后让bokeh离线重新访问图像/磁贴。但是,对于我的简单静态地图来说,平铺方法甚至可能不是一种可行的方法


Python 3.6,Bokeh 12.7

如果要保存整个绘图的PNG图像,则标准导出函数可用于gmap绘图或平铺提供程序绘图:

from bokeh.io import export_png
export_png(p, "foo.png")
如果您的意思是想要一个独立的HTML文件,其中包含一个真实的(实时的)Bokeh图,可以在不访问网络的情况下显示地图图,那么这是不可能的。谷歌地图绘图始终需要访问整个互联网,而磁贴提供商绘图需要访问磁贴服务器所在的任何网络。没有办法在Bokeh HTML输出中“嵌入”地图分幅



编辑:我想您可以制作一个没有轴、边框、标题等的绘图,并使用
export\u png
来“保存背景”。然后,您可能需要加载PNG并将其转换为RGBA numpy数组,以便与
image\u RGBA
一起使用,以便在独立的Bokeh HTML文件中执行emebd。相当多的工作,可能违反了谷歌的TOS

我开始走rgba路线,这可能会奏效。很高兴了解谷歌地图api的局限性。我将重新询问,并对其他映射技术持开放态度。