在gis系统中我们经常遇到将指定区域的地图导出为图片文件,在openlayer官网提供了导出样例https://openlayers.org/en/latest/examples/export-map.html,导出文件格式为base64编码。

but 大家在使用过程中肯能会遇到导出文件失败

该问题经过网上查阅资料发现,是由于跨域请求导致,加载地图时未设置允许跨域。设置为允许跨域后一切正常。

具体代码如下:

   let layer = new ol.layer.Tile({source: new ol.source.TileSuperMapRest({url: url,extent:_map.getView().getProjection().getExtent(),crossOrigin: 'anonymous',}),});map.addLayer(layer);//导出图片文件exportMapImg(callback){let map = this.map();map.once('rendercomplete', function() {var mapCanvas = document.createElement('canvas');var size = map.getSize();mapCanvas.width = size[0];mapCanvas.height = size[1];var mapContext = mapCanvas.getContext('2d');Array.prototype.forEach.call(document.querySelectorAll('.ol-layer canvas'), function(canvas) {if (canvas.width > 0) {var opacity = canvas.parentNode.style.opacity;mapContext.globalAlpha = opacity === '' ? 1 : Number(opacity);var transform = canvas.style.transform;var matrix = transform.match(/^matrix\(([^\(]*)\)$/)[1].split(',').map(Number);CanvasRenderingContext2D.prototype.setTransform.apply(mapContext, matrix);mapContext.drawImage(canvas, 0, 0);}});var data;if (navigator.msSaveBlob) {data = mapCanvas.toDataURL();} else {data = mapCanvas.toDataURL();}callback(data);});map.renderSync();}

openlayer地图导出指定范围图片文件相关推荐

  1. 最近在修改statusBar,添加几张图片.编译源码包时,一直提示无法找到R.drawable.xxxx必须手动编译下指定的图片文件生成R.

    最近在修改statusBar,添加几张图片.编译源码包时,一直提示无法找到R.drawable.xxxx  必须手动编译下指定的图片文件生成R.  $touch frameworks/base/pac ...

  2. [PL/SQL]使用存储过程实现导出指定数据到文件(仿EXP)|转|

    源自 crkying:http://blog.csdn.net/edcvf3/article/details/8633247 由于EXP不能导出表的指定字段(其实也可通过CREATE TABLE  t ...

  3. 导出指定字符集dmp文件_Oracle 11G数据库导入导出终极解决方案

    Oracle 11G数据库导入导出终极解决方案 前言: 导出服务器:保持导出服务器的服务器和客户端字符集一致 导入服务器:保证导入的服务器和客户端字符集与导出服务器字符姐一致. 严格按照本文档操作,数 ...

  4. mysql 导出bson格式_mongodb 导入导出GridFS【图片/文件/视频/音频等多媒体文件的导入导出】...

    其实导入导出GridFS和其他集合一样,只是GridFS有files和chunks两个 1.进入bin目录: 2.导出GridFS数据: ./mongodump --db test-db  --col ...

  5. npoi导出文件不保存在服务器,winform NPOI excel 导出并选择保存文件路径

    public void ExcelOp(DataGridView gdv,ArrayList selHead) { if (selHead.Count==0) { MessageBox.Show(&q ...

  6. 经纬度坐标系分类转换以及奥维地图导出路径经纬度所属坐标系

    WGS-84坐标:世界标准经纬度坐标系(GPS/北斗设备得到的经纬度) GCJ-02坐标:中国国内使用的经纬度坐标系(火星坐标系),是经过WGS-84坐标系换算得到的,比如WGS-84坐标系下经纬度为 ...

  7. 将地图导出为图片或PDF文件

    简介 地图是以QGIS工程作为基础,提供一种工具可以方便将QGIS配置好的地图工程导出为图片或PDF文件.效果如下: 下载QQ群:610712943,1156555959(自动加群,仅供软件下载,不聊 ...

  8. AE 将地图导出为图片的两种方法

    在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或Layout中的图象转出有两种方法,一种为通过IActiveView的OutPut函数,另外一种是通过IExpor ...

  9. ArcGIS Engine开发系列:将地图导出为图片的两种方法

    转自:http://blog.sina.com.cn/s/blog_4c5f70df0100a0ti.html 在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或L ...

最新文章

  1. mysql单引号和双引号
  2. Java类class forName()方法及示例
  3. mongoose c++封装
  4. 行为型设计模式(4)—— 观察者模式(Observer Pattern)
  5. Log4net 配置实例
  6. 在c语言中逻辑或运算符失身额,我的Fortran基本用法小结【转载】
  7. 美赛2018b题O奖论文学习(一)
  8. 计算机vb题库程序代码编写,计算机二级考试.题库-vb程序题
  9. OSM获取城市路网数据及其矢量化
  10. [虎符CTF 2021]Internal System
  11. 佳能打印服务 android,佳能打印机app
  12. (DDIA)SQL与NoSQL数据模型简介
  13. 汽车自动驾驶级别分类
  14. vue项目如何部署?布署服务器后刷新404如何解决?
  15. matlab中figure图片大小修改
  16. 详解SQL中几种常用的表连接方式!
  17. android热更新机制
  18. 免费不限速跨平台文件传输神器—文件疯巢
  19. DBA到底要做什么?
  20. noi.ac 邀请赛1 By cellur925

热门文章

  1. Windows更新网站被黑还是被ARP病毒捉弄了?Virus.Win32.AutoRun.am
  2. 考研数据结构的知识点汇总
  3. 2015年职称计算机考试宝典,2015年职称计算机考试宝典[精].doc
  4. Go语言版黑白棋(十):棋子个数统计、胜负判断
  5. lvgl设置在屏幕上显示当前帧率(FPS)
  6. 常见的Quad-SPI引脚含义
  7. 【C++入门必看】C++从0到1入门编程
  8. 数模笔记(五):变异系数法
  9. 药一点医药软件供应商——医疗器械管理系统
  10. 拓扑空间(topological space )的定义