arcgis js api 4.X 自定义工具按钮_weixin_30872789的博客-程序员秘密

技术标签: ViewUI  python  sketch  javascript  

 

 

 

// All material copyright ESRI, All Rights Reserved, unless otherwise specified.
// See https://js.arcgis.com/4.10/esri/copyright.txt for details.
//>>built ; ;sdfsd sd;;; 
define('esri/widgets/Widget esri/widgets/support/widget'.split(' '), function(Widget, widget) {
  console.log("baseButtonWedgit")
  var baseButtonWedgit = Widget.createSubclass({
    constructor: function(options) {  
      if (options) {
        dojo.mixin(this, options);
      }
    },
    cancelGo: function() {},
    go: function() {
      alert('go go go');
    },
    _go: function() {
      if (this.go) {
        this.go.call(this,this);
      }
    },
    getLable: function() {
      return this.lable || '标题';
    },
    getTitle: function() {
      return this.title || 'title';
    },
    getDivClass :function(){
      return {};
    },
    getIconClass :function(){
      return {};
    },
    render: function() {
      var title =  this.getTitle(this);
      var lable = this.getLable(this);
      var divClass = this.getDivClass(this); 
      var iconClass = this.getIconClass(this);
      return widget.tsx(
        'div',
        {
          bind: this,
          class: this.classes('esri-home esri-widget--button esri-widget',divClass),
          role: 'button',
          tabIndex: 0,
          onclick: this._go,
          onkeydown: this._go,
          'aria-label': lable,
          title: title,
        },
        widget.tsx('span', {
          'aria-hidden': 'true',
          class: this.classes('esri-icon', iconClass),
          innerText: this.title,

        }),
        widget.tsx(
          'span',
          {
            class: 'esri-icon-font-fallback-text',
          },
          'button'
        )
      );
    },
  });
  return baseButtonWedgit;
});

 

 

    /**
     * 添加工具按钮
     */
    this.addButtonWedgit = (options = {}) => {
      // options.map = map;
      // options.view = view;
      const button = new BaseButtonWedgit(options);
      view.ui.add(button, {
        position: options.position || 'bottom-right',
      });
      return button;
    };

 

const btn1 = this.pmap.addButtonWedgit({ 
      go: (e) => {
        const {domNode} = e;
        console.log(domNode) 
        if (this.maptype === '3D') {
          this.maptype = '2D';
          self.setState({ is3D: false });
          btn1.title = '二维地图'
          btn1.set("title", '二维地图');
        } else {
          this.maptype = '3D';          
          btn1.title = '三维地图'
          self.setState({ is3D: true });
        }
      },
      getTitle:()=>this.maptype === '3D'?"二维地图":"三维地图" ,
      getIconClass:()=>this.maptype === '3D'?{"esri-icon-2d":true}:{"esri-icon-3d":true} 
    });
    btn1.set("title", '三维地图');
    btn1.set("maptype", '2D');
    btn1.set("buttonClass", 'buttonClass');
  }

 

 

转载于:https://www.cnblogs.com/Leechg/p/10916903.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30872789/article/details/99226507

智能推荐

【操作系统】用户态线程和内核态线程有什么区别?_吻雨_Beta的博客-程序员秘密_用户线程和内核线程

本文内容转载于“拉勾教育”的讲义,详细可看拉勾教育的课程。本人学习之余做做笔记,顺便当个搬运工。目录用户态线程和内核态线程有什么区别?什么是用户态和内核态?系统调用过程线程模型用户态线程内核态线程用户态线程和内核态线程之间的映射关系总结用户态线程和内核态线程有什么区别?这是一个组合型的问题,由很多小问题组装而成,比如:用户态和内核态是什么?用户级线程和内核级线程是一个怎样的对应关系?内核响应系统调用是一个怎样的过程?什么是用户态和内核态?Kernel

Qt学习资源汇总_huangliujing99的博客-程序员秘密

《Qt 学习之路 2》目录Qt 快速入门系列教程跨平台技术Qt第七根弦的技术博客QtQt notebook

IntelliJ IDEA 配置 .ideavimrc_冰阔落的博客-程序员秘密_.ideavimrc

ideavim 介绍中说如果需要配置该插件可以通过  .ideavimrc文件在类unix系统中将 .ideavimrc 放置在用户根目录~/.ideavimrc在windows系统中将.ideavimrc文件放置在如下目录C:\Users\你的用户名\.ideavimrcwindows系统中无法创建以 . 开头的文件,可以在记事本中通过另存为的方式创建,编

使用nginx部署多个前端项目_barnettyj的博客-程序员秘密_nginx配置多个前端项目

常见3种方法来实现在一台服务器上使用nginx部署多个前端项目的方法。基于域名配置 基于端口配置 基于location配置基于域名配置基于域名配置,前提是先配置好了域名解析。比如说你自己买了一个域名:www.test.com。 然后你在后台配置了2个它的二级域名: a.test.com、 b.test.com。配置文件如下: 配置 a.test.com 的配置文件:vim /usr/nginx/modules/a.conf复制代码server { listen

海康摄像机3D PTZ功能,拍照功能_simplyou的博客-程序员秘密_海康ptz

技术交流qq群``海康摄像机3D PTZ功能1.海康界面自带的框选自动居中缩小/放大功能2.核心代码/* * 该结构体中的坐标值与当前预览显示框的大小有关,现假设预览显示框为352*288,我们规定原点为预览显示框左上角的顶点,前四个参数计算方法如下: * xTop=鼠标当前所选区域的起始点坐标的值*255/352; * xBottom =鼠标当前所选区域的结束点坐标的值*255/352; * yTop=鼠标当前所选区域的起始点坐标的值*255/288; * yB.

架构分解之道_分布式系统架构的博客-程序员秘密

这篇文章将从架构分解的作用、分解的原则、分解的维度、分解的战术逐步给大家介绍架构分解之道。开篇开篇我们先讲两个成语:『好高骛远』和『高瞻远瞩』,如果一个人做一些不切实际的...

随便推点

英语歌曲:Home(家)_北京小辉的博客-程序员秘密

Another summer day 又一个夏天 Has come and gone away 来了又走 In Paris or Rome… 在巴黎或者罗马 But I wanna go home 但是我只想回家… uhmMay be surrounded by 可能被成千上万的人 A million people I 所拥戴追逐 但我 Still feel al

一元四次方程c语言程序编写,一元高次方程数值解法C程序实现探讨..doc_墨村拓哉的博客-程序员秘密

一元高次方程数值解法C程序实现探? 一元高次方程作为方程的一部分,对我们后续的学习起着相当重要的作用求解一元高次方程的根在计算数学方面既是难点也是重点。一元三次方程和一元四次方称有一般解法,但是比较复杂,且超过了一般的知识范围5次以及5次以上的代数方程,没有一般的公式解法。文我们了解了系数在有理数域且只有有理根的一元高次方程的解法技巧一元二次方程根式解的推敲了一元三次、四次方程的根式解;最后介绍了...

《Java代码审计》作者柯俊师傅告诉你为什么要学Java代码审计,不看是你的损失!..._Ms08067安全实验室的博客-程序员秘密

出品|MS08067实验室(www.ms08067.com)李柯俊:国内某知名企业实验室高级web研究员,《java代码审计:入门篇》作者,曾在freebuf、 安全客发表多篇高质量技术...

无需写代码!可一键生成前后端代码的开源工具_CSDN资讯的博客-程序员秘密

作者|HelloGitHub-小鱼干来源 | HelloGitHub(ID:GitHub520)头图 | CSDN下载自东方ICJeecgBoot 是一款基于代码生成器的低代码开...

在虚拟环境打包pyinstaller打包记录_ZHHHHHJ66的博客-程序员秘密

新建一个新文件夹在新建文件夹myproject中打开cmd,创建一个不依赖系统python包的虚拟环境,名为venv。关闭cmd.virtualenv --no-site-packages venv进入myproject\venv\Scripts,打开cmd,执行命令activate,激活虚拟环境C:\Users\acer\myproject\venv\Scripts>activate返回(venv) C:\Users\acer\myproject\venv\Scripts&..

推荐文章

热门文章

相关标签