widget

widget()

widget模块化框架,公共处理类

方法

static mars3d.widget.activate(item, noDisableOther)BaseWidget.widgetOptions

激活指定 widget模块

参数名称 类型 默认值 描述信息
item string | BaseWidget.widgetOptions

指widget模块的uri 或 指模块的配置参数,当有配置参数时,参数优先级是: 【activate方法传入的配置 > init方法传入的配置(widget.json) > widget.js内部配置的】

参数名称 类型 描述信息
map Map 可选

当单页面简单场景没有init时,也可以传入map来使用单个widget

noDisableOther boolean false 可选

不释放其他已激活的widget

返回值:

指widget模块对象

使用示例:
//常用方式,直接使用uri
mars3d.widget.activate("widgets/bookmark/widget.js");

//使用对象,可以传入更多参数,具体参数参看配置项手册,。
mars3d.widget.activate({
  name:"视角书签"
  uri: "widgets/bookmark/widget.js",
  autoDisable: true,
  testdata:'测试数据1987', //传数据进widget内部,widget内部使用this.config.testdata获取到传的数据
  success:function(thisWidget){
    //创建完成的回调方法
  }
});

static mars3d.widget.bindClass(_class)object

绑定类到当前对应js的widget中。

参数名称 类型 描述信息
_class BaseWidget

定义的BaseWidget子类

返回值:

实例化后的对象

static mars3d.widget.destroy()void

销毁对象

返回值:

static mars3d.widget.disable(uri)boolean

释放指定的widget

参数名称 类型 描述信息
uri string | Array.<string>

widget的uri 或 id

返回值:

是否成功调用了释放

static mars3d.widget.disableAll(nodisable, group)void

关闭释放所有widget

参数名称 类型 描述信息
nodisable string | boolean 可选

传string时 指定不释放的widget的uri或id ,传true值强制释放所有widget(默认autoDisable为false的widet不会释放)

group string 可选

指定强制释放的group名(默认autoDisable为false的widet不会释放),传入group值后会强制释放所有同group组的widget

返回值:

static mars3d.widget.disableGroup(group, nodisable)void

关闭释放同组widget

参数名称 类型 描述信息
group string

指定强制释放的group名

nodisable string 可选

指定不释放的widget的uri或id

返回值:

static mars3d.widget.eachWidget(method)void

遍历所有widget

参数名称 类型 描述信息
method function

回调方法

返回值:

static mars3d.widget.fire(type, data, propagate)void

触发指定类型的事件。

参数名称 类型 描述信息
type WidgetEventType

事件类型

data object

传输的数据或对象,可在事件回调方法中event对象中获取进行使用

propagate BaseClass | object 可选

将事件传播给父类 (用addEventParent设置)

返回值:

static mars3d.widget.getBasePath()string

获取init方法传入的主目录配置参数

返回值:

主目录配置参数

static mars3d.widget.getCacheVersion()string

获取配置的version配置参数,用于附加清除浏览器缓存

返回值:

配置的version参数

static mars3d.widget.getClass(uri)BaseWidget

获取指定的widget 对应的实例化对象

参数名称 类型 描述信息
uri string

widget的uri 或 id

返回值:

widget对应的实例化对象

static mars3d.widget.getDefWindowOptions()object

获取默认init时中传入配置的 windowOptions 参数

返回值:

windowOptions参数默认值

参考:

static mars3d.widget.getWidget(uri)BaseWidget.widgetOptions

获取指定的widget配置信息

参数名称 类型 描述信息
uri string

widget的uri 或 id

返回值:

widget配置信息

static mars3d.widget.init(map, widgetcfg, _basePath)void

初始化widget管理器,在构造完成map后调用一次即可。

参数名称 类型 默认值 描述信息
map Map

地图对象

widgetcfg object {} 可选

全局配置(一般存放在widget.json),包括:

参数名称 类型 描述信息
defaultOptions BaseWidget.widgetOptions 可选

所有widget的默认参数值,可以系统内所有widget相同配置统一在此处传入,额外的个性化的再配置到各widget中。

openAtStart Array.<BaseWidget.widgetOptions> 可选

默认自启动并不可释放的插件,其中autoDisable和openAtStart固定,设置无效。

widgets Array.<BaseWidget.widgetOptions> 可选

所有插件配置,传入后后续激活时,只用传入uri即可。

version string 可选

加载资源时,附加的参数,主要为了清理浏览器缓存,可选值:"time"(实时时间戳)或固定的字符串值,每次发布新版本换下固定值。

debugger boolean 可选

是否显示插件测试栏,true时会在地图下侧显示所有插件测试按钮,方便测试。

_basePath string '' 可选

widgets目录所在的主路径(统一前缀), 如果widgets目录不在主页面一起或存在路由时,可以传入自定义主目录,值为 widgets目录相对于当前html页面的相对路径。

返回值:

使用示例:
let widgetCfg ={
  "version": "2017",
  "defaultOptions": {
    "style": "dark",
    "windowOptions": {
      "skin": "layer-mars-dialog animation-scale-up",
      "position": {
        "top": 50,
        "right": 10
      },
      "maxmin": false,
      "resize": true
    },
    "autoReset": false,
    "autoDisable": true,
    "disableOther": true
  },
  "openAtStart": [
    {
      "name": "放大缩小按钮",
      "uri": "widgets/toolButton/zoom.js"
    }
  ],
  "widgets": [
    {
      "name": "模板-div弹窗",
      "uri": "widgets/_example_divwin/widget.js"
    },
    {
      "name": "模板-append模板",
      "uri": "widgets/_example_append/widget.js"
    }
  ]
}
mars3d.widget.init(map, widgetCfg, './')

static mars3d.widget.isActivate(uri)boolean

获取widget的当前激活状态

参数名称 类型 描述信息
uri string

widget的uri 或 id

返回值:

是否激活

static mars3d.widget.listens(type, propagate)boolean

是否有绑定指定的事件

参数名称 类型 描述信息
type WidgetEventType

事件类型

propagate BaseClass 可选

是否判断指定的父类 (用addEventParent设置的)

返回值:

是否存在

static mars3d.widget.off(types, fn, context)void

解除绑定指定类型事件监听器

参数名称 类型 描述信息
types WidgetEventType | Array.<WidgetEventType>

事件类型

fn function 可选

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

static mars3d.widget.on(types, fn, context)void

绑定指定类型事件监听器

参数名称 类型 描述信息
types WidgetEventType | Array.<WidgetEventType>

事件类型

fn function 可选

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

static mars3d.widget.once(types, fn, context)void

绑定一次性执行的指定类型事件监听器 与on类似,监听器只会被触发一次,然后被删除。

参数名称 类型 描述信息
types WidgetEventType | Array.<WidgetEventType>

事件类型

fn function 可选

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

static mars3d.widget.removeDebugeBar()void

移除Widget测试栏(当有开启debugger时)

返回值:

static mars3d.widget.setViewShow(uri, show, index)boolean

设置view弹窗的显示和隐藏,基于修改css实现

参数名称 类型 描述信息
uri string

widget的uri 或 id

show boolean

是否显示

index number 可选

当有多个view时,可以指定单个操作的view的index

返回值:

是否成功设置