mineMap地图截图

mineMap地图截图,mineMap示例中心说明:http://minedata.cn/minemapapi/demo/index.html#map_screen_shot
具体实现:

  1. 引入js: //minedata.cn/minemapapi/demo/js/canvas2image.js
  2. 地图初始化时,打开保留绘制缓存:
var map = new minemap.Map({
        container: 'map',
        style: "//minedata.cn/service/solu/style/id/2365",
        center: [116.46,39.92],
        zoom: 14,
        pitch: 0,
        maxZoom: 17,
        minZoom: 3,
        preserveDrawingBuffer: true //保留绘制缓存 默认为false,
        //如果设置为true,地图渲染效率会有所下降;备注:需要地图截屏时,需要将改参数设置为true
    });
  1. 如果仅截图底图以及addLayer方法添加的渲染图层,示例中方法即可
    若涉及echart绘制效果叠加截取,按照如下方法:
    ①截图方法:
			let pixRatio = this.getPixRatio();  //获取不同屏幕分辨率下的像素比(包括缩放状态)
			if (echartLayer) {
			//获取echart画布-透明背景
              let offcanvas = env.echartLayer.chart.getRenderedCanvas({
                pixelRatio: pixRatio, 
                backgroundColor: 'transparent'
              });
              //获取minemap画布
              let asd = document.getElementsByClassName('minemap-canvas')[0];
              let cwidth = asd.width, cheight = asd.height;
              //新建画布
              let mycanvas = document.createElement('canvas');
              mycanvas.height = cheight;
              mycanvas.width = cwidth;
              //将以上渲染画布叠加到新建画布上
              mycanvas.getContext("2d").drawImage(c, 0, 0);
              mycanvas.getContext("2d").drawImage(offcanvas, 0, 0, cwidth, cheight, 0 , 0, cwidth, cheight);
              //保存
              let img_data1 = Canvas2Image.saveAsJPEG(mycanvas, true).getAttribute('src');
              //下载
              this.saveFile(img_data1, `${fileName}.jpg`);
              }

②getPixRatio方法,获取像素比:
此方法是解决不同分辨率下,以及缩放状态下,echat和地图位置偏移的问题

getPixRatio() {
        let ratio = 0,
          screen = window.screen,
          ua = navigator.userAgent.toLowerCase();

        if (window.devicePixelRatio !== undefined) {
          ratio = window.devicePixelRatio;
        }
        else if (~ua.indexOf('msie')) {
          if (screen.deviceXDPI && screen.logicalXDPI) {
            ratio = screen.deviceXDPI / screen.logicalXDPI;
          }
        }
        else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {
          ratio = window.outerWidth / window.innerWidth;
        }
        if (ratio) {
          ratio = Math.round(ratio * 100)/100;
        }
        return ratio;
      },

③ 图片保存并自动下载的方法

saveFile(data, filename) {
    let save_link = document.createElement('a');
    save_link.href = data;
    save_link.download = filename;

    let event = document.createEvent('MouseEvents');
    event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    save_link.dispatchEvent(event);
  }
``

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Minemap是一种基于Web的地图开发平台,它提供了丰富的地图展示、交互功能和数据分析能力。Minemap官方文档详细介绍了该平台的各项功能和使用方法。 首先,Minemap官方文档介绍了如何快速开始使用该平台。它提供了一系列的API文档,包括地图展示、地图样式设置、地图交互、数据分析等方面的内容。通过仔细阅读这些文档,开发人员可以快速了解Minemap平台的整体架构和基本操作方法。 其次,Minemap官方文档详细介绍了如何定制地图风格。它提供了丰富的地图样式设置选项,开发人员可以自由选择地图的底图、标注样式、背景颜色等,以满足不同项目和用户的需求。通过仔细阅读这些文档,开发人员可以掌握如何根据具体需求定制地图风格。 此外,Minemap官方文档还介绍了地图数据的可视化和分析功能。开发人员可以通过在地图上添加自定义数据图层,并使用各种数据分析工具,例如热力图、聚类等,实现对地理数据的可视化和深入分析。通过仔细阅读这些文档,开发人员可以学习如何使用Minemap平台提供的数据分析功能,从而更好地理解和使用地理数据。 总之,Minemap官方文档是开发人员使用该地图开发平台的重要参考资料。通过仔细阅读和理解这些文档,开发人员可以深入学习和掌握Minemap平台的各项功能和使用方法,从而更好地开发出符合自己需求的地图应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值