arcgis for javascript4.x 屏蔽掉地图的默认事件及默认控件
屏蔽地图默认事件
原理是通过设置view的监听,然后在相应事件触发时候阻止事件冒泡,我们可以添加一个内部状态curentState来设置是否启用禁止默认事件效果。
//禁止默认事件
DisableInteraction(view) {
let curentState = true; //禁止通过键盘+-缩放地图
view.on("key-down", function (event) {
var prohibitedKeys = ["+", "-", "Shift", "_", "="];
var keyPressed = event.key;
if (prohibitedKeys.indexOf(keyPressed) !== -1) {
if (curentState) event.stopPropagation();
}
}); //禁止滚轮缩放地图
view.on("mouse-wheel", function (event) {
if (curentState) {
event.stopPropagation();
}
}); //禁止双击放大
view.on("double-click", function (event) {
if (curentState) event.stopPropagation();
}); //禁止Ctrl+双击缩小
view.on("double-click", ["Control"], function (event) {
if (curentState) event.stopPropagation();
}); //禁止移动地图
view.on("drag", function (event) {
if (curentState) event.stopPropagation();
}); // 禁止通过上下左右箭头移动地图
view.on("key-down", function (event) {
// prevents panning with the arrow keys
var keyPressed = event.key;
if (keyPressed.slice(0, 5) === "Arrow") {
if (curentState) event.stopPropagation();
}
}); //禁止Shift+拖拽拉框放大
view.on("drag", ["Shift"], function (event) {
if (curentState) event.stopPropagation();
}); //禁止Shift+Ctrl+拖拽拉框缩小
view.on("drag", ["Shift", "Control"], function (event) {
if (curentState) event.stopPropagation();
});
return function (state) {
curentState = state;
};
屏蔽自带控件
arcgis for js自带控件DOM基本上都写在view.ul模块中,设置为空便可以清空所有默认控件
view.ui.components = [];
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!