在Bokeh谷歌地图离线重绘

问题描述 投票:2回答:1

我想创建一个带有一些绘制圆圈的散景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)

给出以下内容,在地图上绘制三个白点:enter image description here

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

 lons = [mid_lon + 0.003, mid_lon - 0.003, mid_lon]
 lats = [mid_lat + 0.003, mid_lat - 0.003, mid_lat]

有没有办法保存图形的背景图像并将其加载到新的图中?看起来它看起来并不像GMap支持这一点,但在python中有一个聪明的解决方法吗?

似乎我可能需要保存自己的磁贴提供程序(如图所示here),但我认为我误解了正确的方法,然后散景重新访问图像/磁贴脱机。但是瓷砖方法甚至可能不适合我简单的静态地图。

Python 3.6,Bokeh 12.7

python google-maps bokeh
1个回答
1
投票

如果你想保存,例如整个绘图的PNG图像,然后标准导出功能适用于gmap图或切片提供者图:

from bokeh.io import export_png
export_png(p, "foo.png")

如果你的意思是你想要一个带有真实(实时)散景图的独立HTML文件,它可以显示地图而无法访问网络,这是不可能的。 Google地图图总是需要访问完整的互联网,并且图块提供者图需要访问图块服务器所在的任何网络。没有办法在Bokeh HTML输出中“嵌入”地图图块。


编辑:我想你可以制作一个没有轴,边框,标题等的情节,并使用export_png来“保存背景”。然后,您可以加载PNG并将其转换为RGBA numpy数组以与image_rgba一起使用,以便在独立的Bokeh HTML文件中进行emebd。相当多的工作,可能违反Google的服务条款。

© www.soinside.com 2019 - 2024. All rights reserved.