业务咨询
开发咨询
微信沟通

Class: FeatureLayer

CMAP~ FeatureLayer

要素图层类 FeatureLayer


new FeatureLayer(param)

Parameters:
Name Type Description
param Object

参数

Properties
Name Type Argument Default Description
dataSource Object

数据,目前只支持geojson

extrudeHeight Number <optional>

拔起的高度 适用于GeoPolygon和GeoBuilding 单位米

offsetHeight Number <optional>

离地高度 单位米

offsetHeightField String

离地高度字段 代表从该对象的属性中读取该字段的值作为离地高度 优先级低于offsetHeight

offsetHeightFactor Number <optional>
1

与offsetHeightField配合使用 代表在offsetHeightField字段中取值的基础上乘一个值作为离地高度 优先级低于offsetHeight

offsetHeightAdded Number <optional>
0

与offsetHeightField配合使用 代表在offsetHeightField字段中取值并与offsetHeightFactor相乘后加一个值作为离地高度 优先级低于offsetHeight

extrudeFactor Number <optional>
1

高度拉伸倍数 适用于GeoPolygon和GeoBuilding

extrudeField String <optional>

高度属性字段 适用于GeoPolygon和GeoBuilding

renderOrder Number <optional>
0

渲染优先级,默认为0

geometryType String

数据类型 目前支持 GeoPoint GeoLine GeoPolygon GeoHeatMap和GeoBuilding

renderer Object

各类型样式 详情见对应的实例的renderer

visibleLevel Array <optional>

设置显示级别,[最小级别,最大级别]或者是[最小级别],该图层在这个级别范围内才显示 目前只支持初始化时设置

infoWindow CMAP.InfoWindow <optional>

图层内对象弹窗信息

label CMAP.Label <optional>

图层标注信息

pivot Array <optional>

轴心点位置 适用于GeoPoint

Example
var pointLayer = app.create({
      type: 'FeatureLayer',
      name: 'pointLayer',
      renderOrder: 1,
      dataSource:{
            "type": "FeatureCollection",
            "features": [{
                "type": "Feature",
                "properties": {
                  "type": "rain",
                  "value": 5
                },
                "geometry": {
                  "type": "Point",
                  "coordinates": [-73.99995803833008, 40.71805432623303]
                }
              }, {
                "type": "Feature",
                "properties": {
                  "type": "water",
                  "value": 7
                },
                "geometry": {
                  "type": "Point",
                  "coordinates": [-73.98167610168457, 40.726087955120704]
                }
              }]
           },
      geometryType:'GeoPoint',
      renderer:{
        type: 'image',
        url:'image/uGeo/pop.png',
        size:20
      }
    });
   map.userLayers.add(pointLayer);

Extends

Members


angles :Array.<number>

三轴相对角度,相对于自身坐标

Type:
  • Array.<number>
Inherited From:
Overrides:

brothers :THING.Selector

获取物体的所有兄弟对象(排除自己),返回物体对象集合

Type:
Inherited From:
Overrides:

controls :Array.<Object>

获取控件列表(数组)

Type:
  • Array.<Object>
Inherited From:
Overrides:

dataSource :Object

数据源,目前只支持geojson格式的对象 设置dataSource属性会重置featureLayer的renderer

Type:
  • Object
Example
featureLayer.dataSource =
    {
      "type": "FeatureCollection",
      "features": [{
          "type": "Feature",
          "properties": {
            "type": "rain",
            "value": 5
          },
          "geometry": {
            "type": "Point",
            "coordinates": [-73.99995803833008, 40.71805432623303]
          }
        }, {
          "type": "Feature",
          "properties": {
            "type": "water",
            "value": 7
          },
          "geometry": {
            "type": "Point",
            "coordinates": [-73.98167610168457, 40.726087955120704]
          }
        }]
     };

draggable :Boolean

设置/获取 物体是否可被拖拽

Type:
  • Boolean
Inherited From:
Overrides:
Example
obj.draggable = true

dragState :THING.DragState

获取物体当前拖拽状态 THING.DragState.No —— 非拖拽模式、 THING.DragState.DragEnd —— 拖拽结束、 THING.DragState.Dragging —— 拖拽中、

Type:
Inherited From:
Overrides:

extrudeFactor :Number

高度拉伸倍数

Type:
  • Number
Example
featureLayer.extrudeFactor = 2; //设置高度放大倍数

extrudeField :String

高度属性字段

Type:
  • String
Example
featureLayer.extrudeField = 'height'; //设置高度属性字段,该字段可在每一个对象的userData中找到

extrudeHeight :Number

设置FeatureLayer中各对象的拔起高度

Type:
  • Number

height :Number

设置FeatureLayer中各对象拔起高度

Type:
  • Number
Deprecated:
  • Yes

id :String

设置/获取 物体 id

Type:
  • String
Inherited From:
Overrides:

<readonly> infoWindow :CMAP.InfoWindow

图层的弹窗信息

Type:
Example
//不支持featureLayer.infoWindow = infoWindow这种修改方式
//通过这种方式来修改featureLayer中infoWindow的title属性
featureLayer.infoWindow.title = '标题';

inheritAngles :Boolean

设置/获取 物体是否跟随父物体旋转, 默认true.

Type:
  • Boolean
Inherited From:
Overrides:

inheritPickable :Boolean

设置/获取 物体拾取是否受父物体影响, 默认 true.

Type:
  • Boolean
Inherited From:
Overrides:

inheritPosition :Boolean

设置/获取 物体位置是否跟随父物体移动, 默认true.

Type:
  • Boolean
Inherited From:
Overrides:

inheritScale :Boolean

设置/获取 物体是否跟随父物体缩放, 默认true.

Type:
  • Boolean
Inherited From:
Overrides:

inheritStyle :Boolean

设置/获取 物体样式是否受父物体影响, 默认 true.

Type:
  • Boolean
Inherited From:
Overrides:

inheritTheme :Boolean

设置/获取 物体模板是否受父物体影响, 默认 true.

Type:
  • Boolean
Inherited From:
Overrides:

inheritVisible :Boolean

设置/获取 物体可见性是否受父物体影响, 默认 true.

Type:
  • Boolean
Inherited From:
Overrides:

keepSize :Boolean

设置/获取 图标是否保持像素大小不变。默认为 false,即图标在 3D 场景中呈现“近大远小”的表现形式。

Type:
  • Boolean
Inherited From:
Overrides:
Example
// 设置物体始终保持像素大小(不随场景缩放“近大远小”)
object.keepSize = true;

<readonly> label :CMAP.Label

图层的标注信息

Type:
Example
//不支持featureLayer.label = label这种修改方式
//通过这种方式来修改featureLayer中label的fontSize属性
featureLayer.label.fontSize = 12;

localPosition :Array.<number>

设置/获取 物体在父物体坐标系下的相对位置

Type:
  • Array.<number>
Inherited From:
Overrides:

name :String

设置/获取 物体 name

Type:
  • String
Inherited From:
Overrides:

<readonly> objects :Array

图层中所有的对象

Type:
  • Array
Inherited From:
Overrides:

offsetHeight :Number

离地高度 单位:米

Type:
  • Number
Inherited From:
Overrides:
Example
featureLayer.offsetHeight = 200; //设置离地高度200米

offsetHeightAdded :Number

设置FeatureLayer中各对象的离地偏移高度

Type:
  • Number
Example
featureLayer.offsetHeightAdded = 10;

offsetHeightFactor :Number

设置FeatureLayer中各对象的离地高度倍数

Type:
  • Number
Example
featureLayer.offsetHeightFactor = 2;

offsetHeightField :Number

设置FeatureLayer中各对象的离地高度字段

Type:
  • Number
Overrides:
Example
featureLayer.offsetHeightField = 50; //设置离地高度字段

parent :THING.BaseObject

获取直接父物体

Type:
Inherited From:
Overrides:

parents :THING.Selector

获取所有父物体(祖先),返回物体对象集合,集合中的第一个对象为直接父物体,最后一个为世界根对象

Type:
Inherited From:
Overrides:
Example
// 获取某对象的所有父物体
var parents=obj.parents;
// parents[0] 等同于 obj.parent
// 遍历物体集合
parents.forEach(function (parent) {
  THING.Utils.log(parent.name)
})

pickable :Boolean

设置/获取 物体是否能被拾取

Type:
  • Boolean
Inherited From:
Overrides:

position :Array.<number>

设置/获取 物体在世界坐标系下的绝对位置

Type:
  • Array.<number>
Inherited From:
Overrides:

quaternion :Array.<number>

设置四元数

Type:
  • Array.<number>
Inherited From:
Overrides:

<readonly> renderer :Object

图层的渲染样式 目前FeatureLayer的renderer可以支持条件分类,但是如果对renderer进行修改,仅支持整体修改暂不支持分类修改

Type:
  • Object
Example
//不支持featureLayer.renderer = renderer这种修改方式
//通过这种方式来修改featureLayer中renderer的color属性 这样会影响featureLayer中所有对象的颜色
//如果想单独修改某一个地理对象的样式,可以通过featureLayer.objects[0].renderer.color = [1,0,0]这种方式修改
//对于FeatureLayer来说 如果为FeatureLayer设置样式,会冲掉featureLayer中个体的样式
//调用featureLayer.dataSource = xxx;也会重新设置featureLayer的renderer
featureLayer.renderer.color = 'rgb(255,0,0)';

renderOrder :number

设置/获取渲染排序值, 数值越小越先渲染,默认值为 0

Type:
  • number
Overrides:
  • CMAP.Layer#renderOrder
Example
featureLayer.renderOrder = 5;//设置图层渲染顺序为5

scale :Array.<number>

物体自身缩放比例

Type:
  • Array.<number>
Inherited From:
Overrides:
Example
// 等比例缩放 2 倍
obj.scale = [2,2,2]

subNodes :THING.Selector

获取子部件(模型的 Mesh 列表)

Type:
Inherited From:
Overrides:
Example
var subNodes = obj.subNodes;
subNodes.forEach(function(subnode){
  THING.Utils.log(subnode.name)
})

type :String

设置/获取 物体类型

Type:
  • String
Inherited From:
Overrides:

userData :Object

获取/设置用户自定义属性

Type:
  • Object
Inherited From:
Overrides:

visible :boolean

显示为True,不显示为False

Type:
  • boolean
Overrides:
  • CMAP.Layer#visible

visibleLevel :Array

设置显示级别,[最小级别,最大级别]或者是[最小级别],该图层在这个级别范围内才显示

Type:
  • Array
Inherited From:
Overrides:
Example
layer.visibleLevel = [10,15];//限制图层在10-15层级范围内显示

Methods


add(obj)

添加对象到FeatureLayer,要添加的feature类型必须和FeatureLayer的geometryType一致 添加后dataSource属性不变

Parameters:
Name Type Description
obj Object

要添加到图层中的对象(GeoPoint,GeoLine,GeoBuilding,GeoPolygon等)

Overrides:

addControl(type [, name]) → {Object}

添加物体控件

Parameters:
Name Type Argument Description
type Object

系统内置控件类型 或 用户自定义控件类型

name String <optional>

控件自定义名称(用于查找)

Inherited From:
Overrides:
Returns:

控件

Type
Object
Example
obj.addControl(new THING.AxisTransformControl(obj), 'axisControl');

clearClipping()

清除物体裁剪

Inherited From:
Overrides:

distanceTo(position) → {Number}

获取物体到某坐标或者另一物体的绝对距离

Parameters:
Name Type Description
position Array.<number> | THING.BaseObject

世界坐标系下的位置 或 另一物体

Inherited From:
Overrides:
Returns:

距离

Type
Number
Example
// 填写世界坐标系下的位置
obj.distanceTo([0,0,0]);
// 填写物体对象
obj.distanceTo(otherObj);

fadeIn(param)

淡入

Parameters:
Name Type Description
param Object

参数列表

Properties
Name Type Argument Description
time Number <optional>

淡入时间(毫秒) 默认 1s

complete function <optional>

完成时的回调

Inherited From:
Overrides:
Example
obj.fadeIn();
// 设置时间和回调
obj.fadeIn({
  time:2000,
  complete:function(ev){
    THING.Utils.log('complete')
  }
})

fadeOut(param)

淡出

Parameters:
Name Type Description
param Object

参数列表

Properties
Name Type Argument Description
time Number <optional>

淡出时间(毫秒) 默认 1s

complete function <optional>

完成时的回调

Inherited From:
Overrides:
Example
obj.fadeOut();
// 设置时间和回调
obj.fadeOut({
  time:2000,
  complete:function(ev){
    THING.Utils.log('complete')
  }
})

getAttribute(key) → {*}

获取属性值

Parameters:
Name Type Description
key String

属性名,可以使用 a/b/c 的路径方式

Inherited From:
Overrides:
Returns:

属性值

Type
*
Example
obj.getAttribute("userData/power");

getControl(name) → {Object}

获取控件

Parameters:
Name Type Description
name String

控件自定义名称

Inherited From:
Overrides:
Returns:

控件

Type
Object
Example
var control = obj.getControl('axisControl');

getEvents(eventType) → {Array.<Object>}

获取绑定的事件列表,返回数组

Parameters:
Name Type Description
eventType THING.EventType | String

事件名称, 如果不传则返回所有已绑定的事件

Inherited From:
Overrides:
Returns:
Type
Array.<Object>
Example
var events=obj.getEvents();
// 返回数组,结构形如:
[{"type":"enterlevel","priority":50,"userData":null,'tag':'__level_scene_operations__'},
{"type":"leavelevel","priority":50,"userData":null,'tag':'__level_scene_operations__'},
{"type":"click","priority":50,"userData":null,'tag':'我的单击事件'}]

getOrientedBox(onlyVisible, onlySelf) → {OrientedBoxResult}

获取带方向的包围盒信息

Parameters:
Name Type Default Description
onlyVisible Boolean true

是否仅获取可见物体数据

onlySelf Boolean false

是否仅获取自身物体数据

Inherited From:
Overrides:
Returns:
Type
OrientedBoxResult

hasAttribute(key) → {Boolean}

判断属性是否存在

Parameters:
Name Type Description
key String

属性名,可以使用 a/b/c 的路径方式

Inherited From:
Overrides:
Returns:
Type
Boolean
Example
// 物体属性 obj.userData.power 是否存在
obj.hasAttribute("userData/power");

hasChild(object) → {Boolean}

检测是否拥有此子物体

Parameters:
Name Type Description
object THING.BaseObject

物体

Inherited From:
Overrides:
Returns:
Type
Boolean

hasControl(control) → {Boolean}

查询是否拥有控件

Parameters:
Name Type Description
control Object | String

控件或者控件自定义名字

Inherited From:
Overrides:
Returns:
Type
Boolean
Example
obj.hasControl('axisControl');

isBrotherOf(object) → {Boolean}

判断该物体是否为某物体的兄弟

Parameters:
Name Type Description
object THING.BaseObject

物体

Inherited From:
Overrides:
Returns:
Type
Boolean

isChildOf(parent) → {Boolean}

判断该物体是否为某物体的孩子

Parameters:
Name Type Description
parent THING.BaseObject

物体

Inherited From:
Overrides:
Returns:
Type
Boolean

lookAt(target, params)

设置物体观察朝向

Parameters:
Name Type Description
target Array.<Number> | THING.BaseObject | THING.CameraController

世界坐标下某坐标、某物体或者摄像机,设为 null 时表示取消观察

params Array.<Number> | Object

参数列表

Properties
Name Type Argument Description
angles Array.<Number> <optional>

叠加的修正值

lockYAxis Boolean <optional>

是否锁定 Y 轴

always Boolean <optional>

是否一直朝向观察物体

Inherited From:
Overrides:
Example
//让物体面向[0,1,0],该坐标是在世界坐标下位置
obj.lookAt([0,1,0])
//让物体一直面向摄影机
obj.lookAt(app.camera)
//让物体一直面向一个物体
obj.lookAt(obj2)
//让物体一直面向一个物体,同时物体沿自身Y轴向再旋转90度
obj.lookAt(obj2,[0,90,0])
//取消lookAt功能
obj.lookAt(null)

movePath(params)

沿指定路径移动

Parameters:
Name Type Description
params Object
Properties
Name Type Argument Description
path Array.<Number>

路径,由世界坐标系下的坐标点组成

orientToPath Boolean <optional>

物体方向是否沿路径方向

orientToPathDegree Number <optional>

相对于路径方向的角度旋转值

time Number <optional>

沿路径移动的时间(毫秒)

local Boolean <optional>

输入的坐标是否相对于父物体的位置(默认false), 否则路径为世界坐标

delayTime Number <optional>

延时执行时间(毫秒)

lerpType THING.LerpType <optional>

插值类型

loopType String <optional>

循环类型,默认为 no

update function <optional>

移动中的回调

complete function <optional>

移动完成时的回调

Inherited From:
Overrides:
Example
// 世界坐标系下坐标点构成的数组 关于坐标的获取 可利用「工具」——>「拾取场景坐标」
var path = [[0, 0, 0], [20, 0, 0], [20, 0, 10], [0, 0, 10], [0, 0, 0]];
obj.movePath({
  orientToPath: true, // 物体移动时沿向路径方向
  path: path, // 路径坐标点数组
  time: 5 * 1000, // 路径总时间 毫秒
  delayTime: 1000, // 延时 1s 执行
  lerpType: null, // 插值类型(默认为线性插值)此处设置为不插值
  complete: function (ev) {
    THING.Utils.log(ev.object.name + "移动结束")
  }
});

moveTo(params)

移动到某位置 或 某物体对象

Parameters:
Name Type Description
params Object
Properties
Name Type Argument Description
position Array.<Number> | THING.BaseObject

目标位置(世界坐标系下绝对位置) 或 物体对象

orientToPath Boolean <optional>

是否朝向目标方向

loopType String <optional>

循环类型,默认为 no

time Number <optional>

完成移动的时间(毫秒)

offsetPosition Array.<Number> <optional>

相对于当前位置的移动偏移量(与 position 选填其一)

complete function <optional>

移动完成时的回调,仅当 loopType 为 no 时才有回调

Inherited From:
Overrides:
Example
// 移动到世界坐标系下 [0,0,10] 处位置
obj.moveTo([0, 0, 10]);
// 3s 移动到世界坐标系下原点位置 [0,0,0]
obj.moveTo({
  position: [0,0,0],
  time: 3000,
  orientToPath: true,// 朝向目标方向
  complete:function(ev) {
    THING.Utils.log(ev.object.name + '移动完成');
  }
});
// 2s 向前移动 10m
obj.moveTo({
  offsetPosition: [0, 0, 10], // 相对自身 向前移动 10m
  time: 2 * 1000,
  orientToPath: true,
  complete: function (ev) {
    THING.Utils.log(ev.object.name + '移动完成');
  }
});

off(eventType, condition, callback)

移除事件绑定

Parameters:
Name Type Description
eventType String

事件类型名称

condition String

物体类型选择条件

callback function | String

事件触发的回调函数 或 事件标签(tag)

Inherited From:
Overrides:
Example
// 移除所有 Click 事件的绑定
obj.off('click');
// 移除对物体下 Marker 子物体的 Click 事件绑定
obj.off('click','.Marker');
// 移除标记为某个事件标签的事件绑定,如果绑定(on)时没写条件,则第二个参数需填写 null
obj.off('click','.Marker','我的点击事件01')
obj.off('click',null,'我的点击事件02')

one(eventType [, condition] [, userData], callback [, tag] [, priority])

绑定事件(只触发一次)

Parameters:
Name Type Argument Description
eventType String

事件类型名称

condition String <optional>

物体类型选择信息

userData Object <optional>

事件传递自定义数据

callback function

事件触发的回调函数

tag String <optional>

事件标签

priority Number <optional>

优先级,数值越大优先级越高

Inherited From:
Overrides:

pauseEvent(eventType [, condition] [, tag])

暂停事件响应

Parameters:
Name Type Argument Description
eventType THING.EventType | String

事件名称

condition String <optional>

物体类型选择条件

tag String <optional>

事件标签

Inherited From:
Overrides:

query(param [, recursive]) → {THING.Selector}

在子物体中查询(不包括自己)

Parameters:
Name Type Argument Default Description
param String

查询条件

recursive Boolean <optional>
true

是否递归查询所有子物体, 默认true

Inherited From:
Overrides:
Returns:

查询结果

Type
THING.Selector
Example
// 查询名称为 car01 的子物体
obj.query('car01');
// 查询类型为 Marker 的子物体
obj.query('.Marker');
// 查询id为 001 的子物体
obj.query('#001');
// 根据自定义属性值筛选子物体
obj.query('[userData/power=40]');
// 根据正则表达式匹配 name 中包含 'car' 的子物体
obj.query(/car/);
// 上行代码等同于
// var reg = new RegExp('car');
// var cars=app.query(reg);

remove(obj)

移除Layer中指定的对象 移除后dataSource属性不变

Parameters:
Name Type Description
obj Object

图层中的对象

Overrides:

removeAll()

移除layer下的所有对象 移除后dataSource属性不变


removeAllControls()

删除该物体的所有控件

Inherited From:
Overrides:

removeControl(control)

删除控件

Parameters:
Name Type Description
control Object | String

控件或控件自定义名称

Inherited From:
Overrides:
Example
var control = obj.removeControl('axisControl');

resumeEvent(eventType [, condition] [, tag])

恢复事件响应

Parameters:
Name Type Argument Description
eventType THING.EventType | String

事件名称

condition String <optional>

物体类型选择信息

tag String <optional>

事件标签

Inherited From:
Overrides:

rotate(angle, axis)

让物体以自身坐标系下指定坐标轴旋转(默认 Y 轴)

Parameters:
Name Type Description
angle Number

旋转角度值

axis Array.<number>

方向轴,默认为物体 Y 轴方向

Inherited From:
Overrides:
Example
// 绕自身 Y 轴旋转45度,等同于 obj.rotateY(45)
obj.rotate(45);
// 绕自身 X 轴旋转30度,等同于 obj.rotateX(30)
obj.rotate( 30, [1,0,0])
// 绕自身 Z 轴向旋转-45度,等同于 obj.rotateZ(-45)
obj.rotate( -45, [0,0,1])

rotateAround(params)

绕某点或某物体旋转

Parameters:
Name Type Description
params Object

参数列表

Properties
Name Type Argument Description
object THING.BaseObject <optional>

围绕某物体

target Array.<Number> <optional>

围绕世界坐标系下某位置点

angle Number <optional>

水平旋转角度

time Number <optional>

旋转时间(毫秒)

speed Number <optional>

速度 (与 time 选填其一)

loopType String <optional>

循环类型

complete function <optional>

旋转结束时的回调函数,仅当 loopType 为 no 时才有回调

Inherited From:
Overrides:
See:
Example
// obj2 绕着 obj1 旋转360度,2s转完
obj2.rotateAround({
  object: obj1,
  angle:360,
  time:2000,
  loopType:THING.LoopType.No,
  complete:function(){
    THING.Utils.log('finish')
  }
})
// obj 绕着 世界坐标系下的原点旋转360度,2s转完
obj.rotateAround({
  target: [0,0,0],
  angle:360,
  time:2000,
  loopType:THING.LoopType.No,
  complete:function(){
    THING.Utils.log('finish')
  }
})

rotateTo(params)

在一段时间内物体旋转一定角度

Parameters:
Name Type Description
params Object

参数列表

Properties
Name Type Argument Description
angles Array.<number>

旋转角度

time Number <optional>

完成旋转的时间(毫秒)

speed Number <optional>

旋转速度(与 time 选填其一)

loopType String <optional>

循环类型,默认为 no

lerpType String <optional>

旋转速度插值类型

complete function <optional>

旋转完成时的回调函数,仅当 loopType 为 no 时有回调

Inherited From:
Overrides:
Example
// 物体绕 Y 轴旋转 90 度,5s 转完
obj.rotateTo({
  angles: [0, 90, 0], // 旋转角度
  time: 5000, // 总时间
  complete: function () {
    THING.Utils.log('rotate complete');  // 旋转结束回调
  }
})

// 物体绕 Y 轴旋转 90 度,5s 变加速转完
obj.rotateTo({
  angles: [0, 90, 0],
  time: 5000,
  lerpType: THING.LerpType.Quadratic.In, // 速度插值
  complete: function () {
    THING.Utils.log('finish')
  }
})

rotateX(value)

绕自身 X 轴旋转

Parameters:
Name Type Description
value Number

旋转角度值

Inherited From:
Overrides:

rotateY(value)

绕自身 Y 轴旋转

Parameters:
Name Type Description
value Number

旋转角度值

Inherited From:
Overrides:

rotateZ(value)

绕自身 Z 轴旋转

Parameters:
Name Type Description
value Number

旋转角度值

Inherited From:
Overrides:

scaleTo(params)

在一段时间内将物体缩放至某比例

Parameters:
Name Type Description
params Object
Properties
Name Type Argument Description
scale Array.<number>

缩放值

time Number <optional>

完成缩放的时间(毫秒)

speed Number <optional>

缩放速度(与 time 选填其一)

lerpType THING.LerpType <optional>

缩放速度插值类型

loopType String <optional>

循环类型,默认为 no

complete function <optional>

缩放完成时的回调

Inherited From:
Overrides:
Example
// 5s 物体缩放至两倍
obj.scaleTo({
  scale: [2,2,2], // 等比例缩放两倍
  time: 5000,
  complete: function () {
    THING.Utils.log('scale completed');  // 缩放结束回调
  }
});
// 缩放循环往复进行
obj.scaleTo({
  scale:[2,2,2],
  time: 2000,
  loopType: THING.LoopType.PingPong // 循环类型:来回往复
})

selfToWorld(localPos [, ignoreScale]) → {Array.<number>}

将物体自身坐标系下的相对位置转换成世界坐标系下的绝对位置

Parameters:
Name Type Argument Default Description
localPos Array.<number>

物体自身坐标系下的相对位置

ignoreScale Boolean <optional>
false

是否忽略缩放系数

Inherited From:
Overrides:
Returns:

世界坐标系下的绝对位置

Type
Array.<number>
Example
// 例如某书柜在三楼的原点(相对位置)
// floor 为三楼楼层对象,返回结果为书柜在世界坐标系下的绝对位置,比如 [5,6,-15]
floor.selfToWorld([0,0,0]);

setAttribute(key, value)

设置属性值

Parameters:
Name Type Description
key String

属性名,可以使用 a/b/c 的路径方式

value *

属性值

Inherited From:
Overrides:
Example
obj.setAttribute("userData/price",50);

setAttributes(attributes [, overwrite])

批量设置属性值

Parameters:
Name Type Argument Default Description
attributes Object

属性列表

overwrite Boolean <optional>
true

是否覆盖原有属性(默认覆盖),如果为 false 表示如果原属性存在,则不会更新属性值

Inherited From:
Overrides:
Example
obj.setAttributes({
  "userData/power": 50,
  "userData/pirce": 60
})

setClipping(planes, spaceType)

设置物体裁剪

Parameters:
Name Type Description
planes Object | Array.<Object>

裁剪平面 { height: {Number} 裁剪平面高度, direction: {Number[]} 裁剪平面方向 }

spaceType SpaceType

裁剪空间,默认为Self

Inherited From:
Overrides:

setVisible(value, effectChildren)

设置图层可见 对于图层来说,如果仅仅设置图层本身节点的visible,第二个参数传false,如果需要影响图层内各要素的visible,第二个参数传true 注:如果图层内要素visible为true 而图层本身的visible是false 这个要素是不会被显示的

Parameters:
Name Type Description
value Boolean

是否可见

effectChildren Boolean

是否影响图层内要素

Inherited From:
Overrides:

stopMoving()

停止移动(针对 moveTo 、 movePath)

Inherited From:
Overrides:

stopRotating()

停止旋转动画(停止 rotateTo 、rotateAround )

Inherited From:
Overrides:

stopScaling()

停止缩放动画( scaleTo )

Inherited From:
Overrides:

translate(offset)

相对于自身坐标系进行移动

Parameters:
Name Type Description
offset Array.<Number>

相对于自身坐标系的偏移量

Inherited From:
Overrides:
Example
// 沿 X 轴移动 1m (即 左移 1m)
obj.translate([1,0,0]);
// 沿 Y 轴移动 1m (即 上移 1m)
obj.translate([0,1,0]);
// 沿 Z 轴移动 1m (即 向前移动 1m)
obj.translate([0,0,1]);

trigger(eventType [, ev] [, tag])

触发事件

Parameters:
Name Type Argument Description
eventType THING.EventType | String

事件名称

ev Object <optional>

事件信息,传递回调参数

tag String <optional>

事件标签

Inherited From:
Overrides:
Example
// 触发自定义的告警事件
obj.trigger('Alarm');
obj.on('Alarm',function(ev){
  THING.Utils.log(ev.object.name);
})
// 传递参数
obj.trigger('Alarm',{level:2});
obj.on('Alarm',function(ev){
  THING.Utils.log(ev.level)
})

updateRenderer(renderItem)

设置图层渲染样式 这里是整体修改FeatureLayer的样式,如果单独修改某一项,应该使用featureLayer.renderer.xxx=xxx;的方式

Parameters:
Name Type Description
renderItem Object

图层整体的样式

Example
featureLayer.updateRenderer({
       'opacity':1,
      'type':'image',
      'lineType':'Plane',
      'imageUrl':'uGeo/path.png',
      'color':[53,77,135,0.27],
      'effect':true,
      'width':5,
      'speed':1,
    });

worldToSelf(worldPos [, ignoreScale]) → {Array.<number>}

将世界坐标系下的绝对位置转换成物体自身的坐标系下的相对位置

Parameters:
Name Type Argument Default Description
worldPos Array.<number>

世界坐标系下的绝对位置

ignoreScale Boolean <optional>
false

是否忽略缩放系数

Inherited From:
Overrides:
Returns:

相对坐标

Type
Array.<number>
Example
// 例如三楼某书柜在世界坐标系下的绝对坐标是 [5,6,-15]
// floor 为三楼楼层对象,返回结果为书柜相对于该楼层的坐标,比如 [0,0,0]
floor.worldToSelf([5,6,-15]);