# Compass
查阅Cesium API

#### new mars3d.control.Compass(options)
control/Compass.js 11

导航球控件

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 可选 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`rotation` | boolean | `true` | 可选 是否启用调整俯仰角（按中间区域往四周拖拽）
`clickToNorth` | boolean | `true` | 可选 是否启用双击外部圆环区域视角调整为正北
`maxPitch` | string | `0` | 可选 最大俯仰角,度数
`minPitch` | string | `-90` | 可选 最小俯仰角,度数
`outerSvg` | string |  | 可选 外部圆环区域的SVG图片
`innerSvg` | string |  | 可选 中心球区域的SVG图片
`rotationArcSvg` | string |  | 可选 rotation为true时，按中间区域往四周拖拽时，调整俯仰角的对外部圆环的半弧遮盖SVG图片
`className` | string | `"mars3d-compass"` | 可选 样式名称，可以外部自定义样式
`style` | object |  | 可选 可以传任意CSS样式值，如:
参数名称 | 类型 | 描述信息
--- | --- | ---
`top` | string | 可选 css定位top位置, 如 top: '10px'
`bottom` | string | 可选 css定位bottom位置，支持配置'toolbar'自动跟随Toolbar
`left` | string | 可选 css定位left位置
`right` | string | 可选 css定位right位置
`id` | string | number | `createGuid()` | 可选 对象的id标识
`enabled` | boolean | `true` | 可选 对象的启用状态
`parentContainer` | HTMLElement |  | 可选 控件加入的父容器，默认为map所在的DOM map.container
`insertIndex` | number |  | 可选 可以自定义插入到父容器中的index顺序，默认是插入到最后面。
`insertBefore` | HTMLElement | string |  | 可选 可以自定义插入到指定兄弟容器的前面，与insertIndex二选一。

### 继承自

- BaseControl

### 属性值

#### 只读 container : HTMLElement
control/BaseControl.js 66

当前控件的DOM对象

继承自:
  - BaseControl#container

#### enabled : boolean
core/BaseThing.js 99

设置对象的启用和禁用状态。

继承自:
  - BaseThing#enabled

#### enabledEvent : boolean
core/BaseClass.js 32

设置事件的启用和禁用状态

继承自:
  - BaseClass#enabledEvent

#### 只读 id : string|number
core/BaseThing.js 86

对象的id标识

继承自:
  - BaseThing#id

#### 只读 isAdded : boolean
core/BaseThing.js 67

是否已添加到地图

继承自:
  - BaseThing#isAdded

#### 只读 isDestroy : boolean
core/BaseThing.js 77

是否已经销毁了

继承自:
  - BaseThing#isDestroy

#### 只读 options : object
core/BaseClass.js 18

当前类的构造参数

继承自:
  - BaseClass#options

#### 只读 parentContainer : HTMLElement
control/BaseControl.js 75

父容器DOM对象

继承自:
  - BaseControl#parentContainer

#### 只读 parentContainerId : string
control/BaseControl.js 87

父容器DOM对象的ID

继承自:
  - BaseControl#parentContainerId

#### show : boolean
control/BaseControl.js 35

设置DOM容器的显示隐藏

继承自:
  - BaseControl#show

#### 只读 state : State
core/BaseThing.js 56

当前对象的状态

继承自:
  - BaseThing#state

#### 只读 type : string
control/BaseControl.js 57

控件类型

继承自:
  - BaseControl#type

### 方法

#### abstract _addedHook() → void
control/BaseControl.js 301

对象添加到地图上的创建钩子方法， 每次add时都会调用

##### 返回值:

无

继承自:
  - BaseControl#_addedHook

#### abstract _mountedHook() → void
control/BaseControl.js 291

对象添加到地图前创建一些对象的钩子方法， 只会调用一次

##### 返回值:

无

继承自:
  - BaseControl#_mountedHook

#### abstract _removedHook() → void
control/BaseControl.js 311

对象从地图上移除的创建钩子方法， 每次remove时都会调用

##### 返回值:

无

继承自:
  - BaseControl#_removedHook

#### addEventParent(obj) → BaseClass
core/BaseClass.js 303

添加抛出事件到父类，它将接收传播的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#addEventParent

#### addTo(map) → BaseControl
control/BaseControl.js 162

添加到地图上，同 map.addControl

参数名称 | 类型 | 描述信息
--- | --- | ---
`map` | Map | 地图对象

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - BaseControl#addTo

#### destroy(noDel) → void
core/BaseClass.js 47

销毁当前对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`noDel` | boolean | `false` | 可选 false:会自动delete释放所有属性，true：不delete绑定的变量

##### 返回值:

无

继承自:
  - BaseClass#destroy

#### fire(type, data, propagate) → BaseClass
core/BaseClass.js 199

触发指定类型的事件。

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | EventType | string | 事件类型
`data` | object | 可选 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
`propagate` | BaseClass | 可选 将事件传播给父类 (用addEventParent设置)

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#fire

#### getLangText(key) → string
control/BaseControl.js 444

获取当前key对应语言的文本内容。

参数名称 | 类型 | 描述信息
--- | --- | ---
`key` | string | 文本key

##### 返回值:

lang参数指定的对应文本内容

继承自:
  - BaseControl#getLangText

#### hasEventParent(obj) → boolean
core/BaseClass.js 330

是否绑定了抛出事件到指定父类

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | object | 父类对象

##### 返回值:

是否绑定了抛出事件

继承自:
  - BaseClass#hasEventParent

#### listens(type, propagate) → boolean
core/BaseClass.js 253

是否有绑定指定的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | EventType | string | 事件类型
`propagate` | BaseClass | 可选 是否判断指定的父类 (用addEventParent设置的)

##### 返回值:

是否存在

继承自:
  - BaseClass#listens

#### off(types, fn, context) → BaseClass
core/BaseClass.js 96

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

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | string | EventType | Array.<string> | Array.<EventType> | 可选 事件类型，tip:多个事件也可以数组或空格间隔的字符串 , 传入空值时解绑所有事件
`fn` | function | 可选 绑定的监听器回调方法,未传值时解绑所有指定类型对应事件，特殊说明：map.on监听的Cesium相关原生事件时必须传入该参数
`context` | object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#off

#### on(types, fn, context) → BaseClass
core/BaseClass.js 66

绑定指定类型事件监听器, 支持在监听中调用 event.stopPropagation(); 阻止事件冒泡

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | string | EventType | Array.<string> | Array.<EventType> | 事件类型，tip:多个事件也可以数组或空格间隔的字符串
`fn` | function | 绑定的监听器回调方法
`context` | object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#on

#### once(types, fn, context) → BaseClass
core/BaseClass.js 280

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

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | EventType | string | Array.<EventType> | 事件类型
`fn` | function | 绑定的监听器回调方法
`context` | object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#once

#### reload() → void
control/BaseControl.js 139

重新加载

##### 返回值:

无

继承自:
  - BaseControl#reload

#### remove(destroy) → void
control/BaseControl.js 175

从地图上移除，同map.removeControl

参数名称 | 类型 | 描述信息
--- | --- | ---
`destroy` | boolean | 可选 是否调用destroy释放

##### 返回值:

无

继承自:
  - BaseControl#remove

#### removeEventParent(obj) → BaseClass
core/BaseClass.js 316

移除抛出事件到父类

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#removeEventParent

#### setInnerSvg(svg) → void
control/Compass.js 116

更新 中心球区域的SVG图片

参数名称 | 类型 | 描述信息
--- | --- | ---
`svg` | string | SVG图片

##### 返回值:

无

#### setOptions(options, funOptions) → BaseThing|BaseControl|object
core/BaseThing.js 246

更新图层参数

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 与类的构造方法参数相同
`funOptions` | object | 可选 方法参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`merge` | boolean | `true` | 可选 是否合并参数, 如是完整覆盖不合并老的options，请传入fasle

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - BaseThing#setOptions

#### setOuterSvg(svg) → void
control/Compass.js 107

更新 外部圆环区域的SVG图片

参数名称 | 类型 | 描述信息
--- | --- | ---
`svg` | string | SVG图片

##### 返回值:

无

#### setRotationSvg(svg) → void
control/Compass.js 125

更新 按中间区域往四周拖拽时，调整俯仰角的对外部圆环的半弧遮盖SVG图片，rotation为true时有效

参数名称 | 类型 | 描述信息
--- | --- | ---
`svg` | string | SVG图片

##### 返回值:

无

#### setStyle(style) → void
control/BaseControl.js 330

设置新的css样式信息

参数名称 | 类型 | 描述信息
--- | --- | ---
`style` | object | css样式

##### 返回值:

无

继承自:
  - BaseControl#setStyle

#### toJSON() → object
core/BaseThing.js 268

将对象转为Json简单对象，用于存储后再传参加载

##### 返回值:

Json简单对象

继承自:
  - BaseThing#toJSON