美文网首页
arcgis for javascript(4.12)屏蔽掉地图

arcgis for javascript(4.12)屏蔽掉地图

作者: panergongzi | 来源:发表于2020-06-03 10:24 被阅读0次

我们项目开发过程中可能会遇到屏蔽地图默认事件的需求,或者需要屏蔽掉放大,缩小,指北针等库自带的控件。

屏蔽自带控件的代码,arcgis for js自带控件DOM基本上都写在view.ul模块中,设置为空便可以清空所有默认控件

   view.ui.components = [];

屏蔽地图默认事件,原理是通过设置view的监听,然后在相应事件触发时候阻止事件冒泡,我们可以添加一个内部状态curentState来设置是否启用禁止默认事件效果。

    //禁止默认事件

    function 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 javascript(4.12)屏蔽掉地图

      本文链接:https://www.haomeiwen.com/subject/jbdvzhtx.html