2017-03-20 72 views
4

我使用gmaps这是一个jupyter扩展来创建某些热点地图。这个图书馆的输出是一个here互动谷歌地图。将互动式谷歌地图导出为静态图像

我想最终的输出是一个PNG图像,其中可以通过谷歌静态地图获得,但我不知道如何转换地图与一个额外的热图层到一个静态地图编程。

是否可以将像this这样的地图转换为静态图像。

感谢

+0

+1 - 想知道如何在juypter中使用gmap,并将其转换为png以在同一个juypter笔记本中显示,因此,一旦我将笔记本以html格式下载,离线查看笔记本时将显示图像。 –

+1

无法直接执行此操作,因为它不是Google Static Maps支持的功能。您所展示的插件(以及示例)会将热图添加为覆盖图层的单个图像,因此您应该能够访问该图像和地图图像(使用Google静态地图API)。然后,您可以将热图图像覆盖在静态地图图像上。问题会让他们正确排队。 –

回答

2

如果你需要一个热图,你不能仅仅依靠静态地图API,你要么使用谷歌地图API为JavaScript抢砖打下出来在画布或容器或后端服务,或使用其他一些热图库将您用于Google Maps API的相同投影(默认为Web Mercator)中的图层作为PNG输出并叠加在静态地图图像上。

1

晚会稍晚,但我是gmaps的作者,在问题中提到了jupyter小部件。

现在,您可以从gmaps出口PNG格式:

$ pip install -U gmaps 
$ jupyter nbextension enable --py --sys-prefix gmaps 

然后,您可以创建一个映射与出口按钮:

import gmaps 
gmaps.__version__ # => 0.4.2.rc3 

gmaps.configure(api_key="...") 

fig = gmaps.figure() 
fig.add_layer(gmaps.heatmap_layer([(50.0, 5.0), (52.0, 6.0)])) 
fig 

enter image description here

如果单击下载按钮它会将地图导出到PNG。

对于局限性,读取documentation


作为参考,静态API是不能很好地适合用于与显著量重叠数据的映射(如将是典型的热图),由于有一个上限到API接受的数据量。目前这限制在8192字节。

+0

谢谢这很有用。有没有办法导出为div并将地图嵌入到非jupyter html文档中? – Dan

+0

感谢 - 尚未完成,但即将在路线图上提供。 –

+0

感谢您的更新@PascalBugnion。我会尝试公关。 – Harshdeep