我使用mapboxGL在网页上渲染地图,我想将地图导出为包含GeoJSON数据的图像,这些数据已在地图上绘制。 我尝试使用leaflet插件,但它不会渲染集群和其他自定义html,它在地图上显示为弹出或注释。
即使我尝试在服务器上执行此操作,例如使用phantomjs,那么它(phantomjs)也不支持webgl .. 我被困住了,不知道我该怎么做,有什么建议吗?
答案 0 :(得分:1)
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来执行内部步骤,因此在doc头中包含两个库:
<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');
})
}