ArcGIS API+Canvas +Vue框架 制作前端地图打印功能

简介

将ArcGIS Pro 桌面打印制图功能搬到前端页面上 实现BS端打印制图功能
需要实现:
1、地图框可随意拖拽布局、控制大小
2、指北针可随意拖拽布局
3、比例尺按照地图放大缩小 自动更改 可随意拖拽布局
4、图例 根据地图加载的图层进行展示,可随意拖拽布局,控制大小
5、支持预览、下载
工具展示

地图框

在这里插入图片描述

冲突

地图需要在地图框内进行移动缩放等操作,与地图框的鼠标事件冲突,固地图框样式 pointer-events设置成none 关闭鼠标事件

拖拽

添加拖拽功能 ,使用vue的自定义指令 directives 创建drag指令,将v-drag 添加到div中,完成拖拽功能

 directives: {
   
   
   drag: {
   
   
            // 指令的定义
            bind: function (el) {
   
   
                let oDiv = el; // 获取当前元素
                oDiv.onmousedown = (e) => {
   
   
                    // 算出鼠标相对元素的位置
                    let oDiv = document.getElementById("地图框div"); // 获取当前元素
                    let disX = e.clientX - oDiv.offsetLeft;
                    let disY = e.clientY - oDiv.offsetTop;
                    document.onmousemove = (e) => {
   
   
                        // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
                        let left = e.clientX - disX;
                        let top = e.clientY - disY;
                        oDiv.style.left = left + 'px';
                        oDiv.style.top = top + 'px';
                    };
                    document.onmouseup = (e) => {
   
   
                        document.onmousemove = null;
                        document.onmouseup = null;
                    }

                }

            }

        },
     }

放大缩小

添加放大缩小功能,使用vue的自定义指令 directives 创建scale指令,将v-scale 添加到div中,完成拖拽功能

 directives: {
   
   
        scale: {
   
   
            // 指令的定义
            bind: function (el) {
   
   
                let oDiv = el; // 获取当前元素
                oDiv.onmousedown = (e
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值