gpt4 book ai didi

python - 在 Bokeh 谷歌离线 map 上重绘

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:48 24 4
gpt4 key购买 nike

我想创建一个带有一些绘制圆圈的 Bokeh gmap 图,保存该图的 map 背景,然后在同一 map 背景上创建带有新圆圈的离线图。例如:

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)

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

现在,我想离线使用同一张 map 图像——缩放级别、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 中是否有一个聪明的解决方法来做到这一点?

看来我可能需要保存自己的图 block 提供程序(如图 here 所示),但我认为我误解了执行此操作的正确方法,然后让 bokeh 离线重新访问图像/图 block 。但是,对于我的简单静态 map ,瓦片方法甚至可能不是合适的方法。

Python 3.6, Bokeh 12.7

最佳答案

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

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

如果你的意思是你想要一个独立的 HTML 文件,里面有一个真实的(实时的) Bokeh 图,可以在没有访问网络的情况下显示 map ,这是不可能的。谷歌地图绘图始终需要访问完整的互联网,而图 block 提供商图需要访问图 block 服务器所在的任何网络。无法在 Bokeh HTML 输出中“嵌入” map 图 block 。


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

关于python - 在 Bokeh 谷歌离线 map 上重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52372665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com