我正在使用mapboxGL在网页上呈现地图,我想将地图导出为包括在地图上绘制的GeoJSON数据的图像。
我尝试使用Leaflet插件,但是它不呈现群集和其他自定义html,后者在地图上显示为弹出窗口或注释。
即使我尝试在服务器上执行此操作,例如使用phantomjs,但它(phantomjs)也不支持webgl。
卡住了,不知道该怎么办,有什么建议吗?
最佳答案
MpboxGL可以非常容易地导出!您添加到地图的所有内容都是可导出的,这真的很棒。
在地图声明中,确保将preserveDrawingBuffer
设置为true
var map = new mapboxgl.Map({
container: 'map',
style: myawesomestyle,
zoom: 8,
bearing: 0,
pitch: 0,
center: [13, 52.35],
preserveDrawingBuffer: true
});
我喜欢使用CanvasToBlob和FileSaver来执行内部步骤,因此在文档头中包括两个库:
<script type="text/javascript" src="//cdn.jsdelivr.net/canvas-toblob/0.1/canvas-toBlob.min.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/eligrey/FileSaver.js/1.3.3/FileSaver.min.js"></script>
并结合一点打印功能
function printMap() {
map.getCanvas().toBlob(function (blob) {
saveAs(blob, 'map.png');
})
}