如何导出mapBoxGL地图?

时间:2016-06-09 07:24:45

标签: javascript export leaflet mapbox-gl

我使用mapboxGL在网页上渲染地图,我想将地图导出为包含GeoJSON数据的图像,这些数据已在地图上绘制。 我尝试使用leaflet插件,但它不会渲染集群和其他自定义html,它在地图上显示为弹出或注释。

即使我尝试在服务器上执行此操作,例如使用phantomjs,那么它(phantomjs)也不支持webgl .. 我被困住了,不知道我该怎么做,有什么建议吗?

1 个答案:

答案 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');
  })
}