wangzhibo
2021-09-06 2efb5d2a02ce47a9fd6f1cec138496aba72f0815
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
(function (window, mars3d) {
  //创建widget类,需要继承BaseWidget
  class MyWidget extends mars3d.widget.BaseWidget {
    //初始化[仅执行1次]
    create() {
      this.zommControl = new mars3d.control.ToolButton({
        title: "常用工具",
        icon: "fa fa-cubes",
        insertIndex: 1, //插入的位置顺序, 1是home按钮后面
        click: (event) => {
          if ($("#toolbtn-widget-menuList").is(":hidden")) {
            $("#toolbtn-widget-menuList").show(300);
          } else {
            $("#toolbtn-widget-menuList").hide(300);
          }
        },
      });
      this.map.addControl(this.zommControl);
 
      this.bindToolBarMenuView();
 
      this.zommControl = new mars3d.control.ToolButton({
        title: "图层控制",
        icon: "fa fa-tasks",
        insertIndex: 1, //插入的位置顺序, 1是home按钮后面
        click: (event) => {
          mars3d.widget.activate({
            name: event.title,
            uri: "widgets/manageLayers/widget.js",
          });
        },
      });
      this.map.addControl(this.zommControl);
    }
    //激活插件
    activate() {
      //单击地图事件
      this.map.on(mars3d.EventType.clickMap, this.onMapClick, this);
    }
    //释放插件
    disable() {
      //释放单击地图事件
      this.map.off(mars3d.EventType.clickMap, this.onMapClick, this);
    }
    bindToolBarMenuView() {
      //工具按钮菜单事件
      var menuHtml = `<div id="toolbtn-widget-menuList" class="toolbar-dropdown-menu-div">
           <ul class="toolbar-dropdown-menu">
           <li class="widget-btn" data-widget="widgets/manageBasemaps/widget.js"><a href="javascript:void(0)"><i class="fa fa-map"></i>底图切换</a></li>
               <li class="widget-btn" data-widget="widgets/measure/widget.js"><a href="javascript:void(0)"><i class="fa fa-calculator"></i>图上量算</a></li>
               <li class="widget-btn" data-widget="widgets/analysis/widget.js"><a href="javascript:void(0)"><i class="fa fa-bar-chart"></i>空间分析</a></li>
 
               <li class="widget-btn" data-widget="widgets/centerXY/widget.js"><a href="javascript:void(0)"><i class="fa fa-map-pin"></i>坐标定位</a></li>
               <li class="widget-btn" data-widget="widgets/navXZQH/widget.js"><a href="javascript:void(0)"><i class="fa fa-paper-plane"></i>地区导航</a></li>
               <li class="widget-btn" data-widget="widgets/addmarker/widget.js"><a href="javascript:void(0)"><i class="fa fa-edit"></i>我的标记</a></li>
               <li class="widget-btn" data-widget="widgets/bookmark/widget.js"><a href="javascript:void(0)"><i class="fa fa-tags"></i>视角书签</a></li>
               <li class="widget-btn" data-widget="widgets/print/widget.js"><a href="javascript:void(0)"><i class="fa fa-print"></i>地图打印</a></li>
 
               <li class="widget-btn" data-widget="widgets/plot/widget.js"><a href="javascript:void(0)"><i class="fa fa-object-group"></i>图上标绘</a></li>
               <li class="widget-btn" data-widget="widgets/roamLine/widget.js"><a href="javascript:void(0)"><i class="fa fa-send-o"></i>飞行漫游</a></li>
 
               <li class="widget-btn" data-widget="widgets/mapCompare/widget.js"><a href="javascript:void(0)"><i class="fa fa-window-restore"></i>分屏对比</a></li>
               <li class="widget-btn" data-widget="widgets/mapSplit/widget.js"><a href="javascript:void(0)"><i class="fa fa-columns"></i>卷帘对比</a></li>
               <li class="widget-btn" data-widget="widgets/streetscape/widget.js"><a href="javascript:void(0)"><i class="fa fa-street-view"></i>百度街景</a></li>
           </ul>
       </div>`;
      $("#mars3dContainer").append(menuHtml);
 
      $(".toolbar-dropdown-menu .widget-btn").click(function () {
        $("#toolbtn-widget-menuList").hide(300);
 
        var uri = $(this).attr("data-widget");
        if (haoutil.isutil.isNull(uri)) {
          return;
        }
 
        var name1 = $(this).attr("data-name");
        var name2 = $(this).html().replace('<a href="javascript:void(0)">', "").replace("</a>", ""); //会覆盖config中配置的名称
 
        mars3d.widget.activate({ uri: uri, name: name1 || name2 });
      });
    }
    onMapClick(event) {
      $("#toolbtn-widget-menuList").hide(300);
    }
  }
 
  //注册到widget管理器中。
  mars3d.widget.bindClass(MyWidget);
 
  //每个widet之间都是直接引入到index.html中,会存在彼此命名冲突,所以闭包处理下。
})(window, mars3d);