前两天在实现“地图打印”功能时发现网上有很多博主推荐了好几种插件,于是本人就挨个试了一遍,今天就其中比较“热门”的三款在这里简单整理一下,如有疏漏欢迎补充。

一、leaflet.bigimage

地址:leaflet.bigimage - npm

leaflet.bigimage的特点是很轻巧,因此其交互性也就较差,引入后仅需用户点击对应控件浏览器即可输出对应png格式的图片。

//npm i leaflet.bigimage//引入
import { BigImage } from "leaflet.bigimage";
import "leaflet.bigimage/src/Leaflet.BigImage.css";let LFBigImage= L.control.BigImage({position: "bottomright",//控件位置title: "出图",//控制按钮提示文本maxScale: 10,//最大图像比例minScale: 1,//最小图像比例inputTitle:"级别",//比例输入前的标题downloadTitle:"输出",//输出按钮的提示文本
});LFBigImage.addTo(map);

本人在使用过程中发现该插件能够自动隐藏页面除地图外的所有DOM结构,但是好像无法输出多图层(虽然文档上说有一个版本更新后支持多图层导出,不知道是不是我图层数据的原因,本人使用的是Supermap iServer发布的图层),另外该插件输出地图的时间受输出级别影响很大,低级别的几秒钟即可输出,高级别的可能需要很久(点击“Download”后控件内就会有一个圆圈处于加载状态,刚开始十几分钟都在加载我以为是卡死了,但是后来发现的确是在输出,最后输出的图片可能会有几百兆)

二、leaflet-easyprint

地址:leaflet-easyprint - npm

leaflet-easyprint个人认为其功能、交互性,使用便捷程度等都比较适中,功能整体够用同时代码也不会很复杂,可以通过配置一些Options即可实现较为丰富的功能。

//npm i leaflet-easyprint//引入
import { easyPrint } from "leaflet-easyprint";let LFeasyPrint = L.easyPrint({title: "地图打印",position: "bottomright",sizeModes: ["Current", "A4Portrait", "A4Landscape"], //输出大小模式defaultSizeTitles: {Current: "当前显示尺寸",A4Landscape: "A4横向",A4Portrait: "A4纵向",}, //输出模式按钮提示文本exportOnly: false, //是否自动输出png(导出选项)filename: "leaflet地图", //仅导出选项设置为true时的文件名hidden: false, //界面是否隐藏控件(自定义控件时使用)hideControlContainer: true, //出图是否隐藏控件hideClasses: ["hidePrint", "hidePrint2", "hidePrint3"], //需要隐藏页面中的DOM结构的类名customWindowTitle: "地图标题", //将添加打印纸张的打印窗口的标题(当exportOnly设置为false时地图打印页面的标题)spinnerBgColor: "#0DC5C1", //微调器背景色的有效css颜色(当exportOnly设置为false时打开的打印页面的背景颜色)
});
LFeasyPrint.addTo(map);//给需要在地图上隐藏的DOM结构添加类名
onMounted(() => {printDOM1.classList.add("hidePrint"); // 添加一个或多个类名printDOM2.classList.add("hidePrint2"); // 添加一个或多个类名printDOM3.classList.add("hidePrint3"); // 添加一个或多个类名
});

该插件支持多图层导出,同时可以选择性的将页面中一些DOM结构导出到地图中,也可以通过设置exportOnly的值,从而实现直接导出为png或展示打印页面由用户自己选择并打印。

效果图(exportOnly:false):

三、leaflet.browser.print

地址:leaflet.browser.print - npm

该插件有很强的交互性,支持用户自定义划取范围导出地图,同时还支持用户自定义导出模式,功能十分丰富,但是好像需要指定导出图层的URL(目前还没研究特别明白就不做详细介绍,以防误人子弟)

leaflet.browser.print插件在线演示

关于Leaflet打印地图的三种方法相关推荐

  1. C语言 打印星星(三种方法)

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> 运行下面之前记得加头文件哦~ 方法一: int main() {printf(&qu ...

  2. AE开发20210506之数据库、创建个人地理数据库、空间数据与工作空间、打开地图的三种办法、查找资料

    20210506 数据库 arcmap相关操作理解数据库的概念 工作空间 常见数据库 创建个人地理数据库 创建数据集的概念. 空间数据和工作空间 1. MapControl控件接口 打开地图的三种方法 ...

  3. php 打印对象到文件,php实现将数组或对象写入到文件的方法小结【三种方法】...

    本文实例讲述了php实现将数组或对象写入到文件的方法.分享给大家供大家参考,具体如下: php将数组或对象原样写入或保存到文件有三种方法可以实现 第一种方法是使用serialize, 第二种方法是使用 ...

  4. python打印菱形三种方法_用python打印菱形的实操方法和代码

    python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n')) row = 1 while row <= rows: col = 1 ...

  5. html页面打印+区域,实现web网页指定区域打印的三种方法

    通过本教程可以实现,将印web网页指定区域的内容,本教程将提供三种方法实现. 方法一:打印网页指定区域 HTML 在需要打印的内容 // 页面上的内容大小调整可以css调整或容器包容 打印容器内的内容 ...

  6. python初学者:打印9*9乘法表的三种方法

    再次拾起python,很基础的入门题就是打印9*9乘法表,分别有个人作答版.前辈修改版.老师答案版.现把三种方法都记下来: 打印9*9乘法表 自己作答版:能看出,逻辑很乱,因为思考时是先考虑j=i打印 ...

  7. 广度优先搜索(BFS)最短路径输出表示(三种方法)

    相信我,看完之后,你会对BFS有种全新的了解,彻底掌握BFS 只需要这一篇就足够啦,狗头 BFS路径表示 广度优先搜索顾名思义就是以迷宫里的无向图某一个点,借助队列,一层一层以该点为中心散开进行搜索, ...

  8. 获取cookie_抢券第一课:三种方法获取Cookie

    现在分享京东抢券是不是不合适?毕竟还没有到双十一或者其他京东大促的时间. 记得以往京东还有那种神券299减200,399减300.基本上都是到点进行抢购,而且还不一定能抢到.不过今天先来分享获取Coo ...

  9. php数组如何写入txt文件中_php将数组写入到文件的三种方法

    php的数组十分强大,有些数据不存入数据库直接写到文件上,用的时候直接从文件中读取,本文章向大家介绍php将数组写入到文件的三种方法. 第一:serialize方法 使用 serialize 将数组序 ...

最新文章

  1. CCF-201509-3-模板生成系统
  2. 【人工智能作业及答案】什么叫智能?什么叫人工智能?人工智能科学体系大致分哪几个层次?
  3. 深入理解 KVC\KVO 实现机制 — KVC
  4. Delphi小技巧杂记
  5. mysql5.5主从同步复制配置
  6. 条形图设置颜色Java_java – 如何在条形图中显示每个条形的条形值?
  7. arcore与unity_Android ARCore –与相机的距离
  8. 163邮箱苹果设置不成功_苹果变安卓不是不可能,Corellium让iPhone成功安装安卓系统...
  9. 汉诺塔c++_C语言,递归解决汉诺塔问题
  10. [他山之玉]轮值董事长郭平 2019年新年致辞
  11. rabbitmq的web管理界面-密码管理
  12. JavaScript实现经典消方块游戏
  13. 客户管理是企业利润的根本,企业如何进行客户管理呢?
  14. unity中Camera的Field of View 垂直FOV
  15. 【动漫整理】好番推荐(含微量剧透)
  16. 【信号类型识别】基于高阶累积量和GRNN神经网络的WIFI与3G/4G信号的识别
  17. 共享经济来势汹汹读懂了你将是下一个土豪
  18. SVG之Animation
  19. Java 集合深入理解(9):Queue 队列
  20. 进程控制-----操作系统

热门文章

  1. 二叉树的先根,中根,层次遍历以及还原-java
  2. Dell1464笔记本安装Win7旗舰版和XP经历
  3. jflash烧录教程_使用J-Flash 对ARM烧录HEX程序
  4. 【图解DSA数字签名算法】DSA签名算法的Python实现 | 物联网安全 | 信息安全
  5. (转)在图像处理中,散度 div 具体的作用是什么?
  6. c 语言loadimage方法吗,CBitmap, HBITMAP和LoadImage
  7. Mac 错误提示:zsh: command not found: brew解决方法
  8. 治理散乱污导致企业经济损失过大?环保部回应
  9. 《Clair二次开发指南1——Clair编译与使用》
  10. 数字频率与模拟频率的转化