WebGIS二次开发-10-地图导出图片下载

21 篇文章 0 订阅
12 篇文章 1 订阅

1、 导入FileSaver.js
<script src="https://lib.baomitu.com/FileSaver.js/2.0.5/FileSaver.js"></script>

2、设置数据源跨域
crossOrigin: "Anonymous"
const key = '8a5c2b00e94b49659861e064c37f778d'
/* 天地图矢量图层 */
const TianDiMap_vec = new ol.layer.Tile({
  title: "天地图矢量图层",
  source: new ol.source.XYZ({
    url: 'http://t0.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=' +
    key,
    wrapX: false,
    crossOrigin: "Anonymous"
  })
})
/* 天地图注记图层 */
const TianDiMap_cva = new ol.layer.Tile({
  title: "天地图矢量注记图层",
  source: new ol.source.XYZ({
    url: 'http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=' +
    key,
    wrapX: false,
    crossOrigin: "Anonymous"
  })
})

3、下载
<body>
    <button onclick="exportImg()">导出图片</button>
    <div id="map_container">

    </div>
    <script>
        var map = new ol.Map({
            target: "map_container",
            layers: [TianDiMap_vec, TianDiMap_cva],
            view: new ol.View({
                center: [114, 30],
                projection: 'EPSG:4326',
                zoom: 4
            })
        })

        function exportImg() {
            map.once('postcompose', function (event) {
                const canvas = event.context.canvas
                console.log(canvas)
                canvas.toBlob(function (blob) {
                    console.log(blob)
                    saveAs(blob, 'map.png')
                })
            })
            map.renderSync()
        }
    </script>
</body>

4、如果是图层中有地图文档,也需设置跨域
var docLayer = new Zondy.Map.Doc("",docName , {
    ip: "localhost",
    port: 6163,
    crossOrigin: "Anonymous"
});
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值