Class: FdPMTSManager

FdTools. FdPMTSManager

PMTS数据管理器


new FdPMTSManager(viewer)

Parameters:
Name Type Description
viewer Freedo.Viewer

视景器

Example
var container = document.getElementById('freedoContainer');
var pmtsManager = new Freedo.FdTools.FdPMTSManager(viewer);

Methods


add(options [, alpha] [, color] [, token])

Parameters:
Name Type Argument Description
options Object

pmts数据的配置选项

Properties
Name Type Argument Description
url String

pmts的url

show Boolean

显示与否

id String <optional>

pmts的id,如果不指定,则会自动创建一个id。

modelMatrix Array <optional>

pmts中模型的变换矩阵数组,包含16个数值,不能直接写Matrix4的对象

autoFlyto Boolean <optional>

数据加载完后是否自动飞往目标数据

transform Array <optional>

[经度偏移,纬度偏移,高度偏移]

maximumScreenSpaceError Number <optional>

默认值16

maximumMemoryUsage Number <optional>

内存缓存阈值,默认值32,单位MB

maximumAbsoluteMemoryUsage Number <optional>

最大内存占用,默认值4096,单位MB

lightColor Freedo.Cartesian3 <optional>

光颜色系数

enableLighting Boolean <optional>

是否开启光照

pointColor String <optional>

点云颜色#AABBCC

pointSize Number <optional>

点云大小

holes Array.<Array.<Array.<Number>>> <optional>

挖洞多边形的数组,支持多个洞,每个点为经纬高的数组

alpha Number <optional>

透明度

color String <optional>

颜色rgb(red, green, blue)

token String <optional>

用户token

Returns:

返回所创建pmts数据的id

Type
String

dispose()

销毁所有资源


enableLighting(id, enabled)

设置pmts是否启用光照

Parameters:
Name Type Description
id String

pmts的id

enabled Boolean

是否启用光照


getAidProp(id, uid, aid, token, callback, option)

获取部件的属性(如果查找不到,则递归查找父节点)

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id

aid Array.<String>

各级父节点的部件uid数组

token String
callback FdTools.FdPMTSManager~Callback

获取属性信息的回调函数

option Object

如果id为空,则option中必须指定pModel


getData()

获取PMTS配置数据,注意不可更改,形式如下:

{  
   'xxx1': {  
       url: 'xxx',  
       token: undefined  
   },  
   'xxx2': {  
   }  
}  

getModelMatrix(id)

获取pmts的模型变换矩阵

Parameters:
Name Type Description
id String

pmts的id

Returns:

模型变换矩阵数组,包含16个数值

Type
Array.<Number>

getPModelArrayByMatrixSet(matrixSet)

通过matrixSet对象查找PModel对象的数组

Parameters:
Name Type Description
matrixSet Object

matrixSet对象


getPModelByMatrix(matrix)

通过matrix对象查找PModel对象

Parameters:
Name Type Description
matrix Object

matrix对象


getPmts(id)

获取pmts的配置信息

Parameters:
Name Type Description
id String

pmts的id

Returns:

pmts配置信息,形式如下:

{
     pModelInfos: [{
         pModel: pModel,
         matrix: matrix,
         matrixSet: matrixSet,
         layer: layer
     }, {
         pModel: pModel,
         matrix: matrix,
         matrixSet: matrixSet,
         layer: layer
     }]
} 

其中pModel属于Freedo.FreedoPModelset类型。

Type
Object

getPmtsIdByPModel(pModel)

通过Tileset对象查找对应的PmtsId

Parameters:
Name Type Description
pModel Freedo.FreedoPModelset

Tileset对象


getPropFromKeyValue(id, key, val, token, callback, option)

通过键值获取属性值

Parameters:
Name Type Description
id String

pmts的id

key String

属性键 例如属性:name

val String

属性值 例如某个name值: JZL03

token String
callback FdTools.FdPMTSManager~Callback

获取部件(子节点)id的回调函数

option Object

查找选项

Properties
Name Type Description
pModel Freedo.FreedoPModelset

限定在某个PModel内

Example
var token = undefined;
pmtsManager.getPropFromKeyValue('daqiaoID', 'name', 'JZL03', token, 
    function (json) {
        console.log(json);
    });

getUidBoundingBoxVertex(id, uid, token, callback)

获取部件的包围盒顶点

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id

token String
callback FdTools.FdPMTSManager~Callback

获取部件包围球信息的回调函数

Example
var token = undefined;
pmtsManager.getUidBoundingBoxVertex(pmtsid, 'LXL05@367', token, 
    function (v) {
        console.log(v.vertex);
    });

getUidBoundingSphere(id, uid, token, callback, option)

获取部件的包围球

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id

token String
callback FdTools.FdPMTSManager~Callback

获取部件包围球信息的回调函数

option Object

查找选项

Properties
Name Type Description
pModel Freedo.FreedoPModelset

限定在某个PModel内

Example
var token = undefined;
pmtsManager.getUidBoundingSphere(pmtsid, 'LXL05@367', token, 
    function (bs) {
        console.log(bs.center);
    });

getUidProp(id, uid, token, callback, option)

获取部件的属性

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id

token String
callback FdTools.FdPMTSManager~Callback

获取属性信息的回调函数

option Object

查找选项

Properties
Name Type Description
pModel Freedo.FreedoPModelset

限定在某个PModel内

Example
var token = undefined, option = {};
pmtsManager.getUidProp('daqiaoID', 'LXL05@367', token, 
    function (json) {
        console.log(json);
    }, option);

getUidTag(id, uid, token, callback)

获取部件的属性

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id

token String
callback FdTools.FdPMTSManager~Callback

获取属性信息的回调函数


hideAllComponents()

隐藏所有组件


highlightComponent(pmtsID, uid, r, g, b, a)

高亮部件

Parameters:
Name Type Description
pmtsID String

pmts的id

uid String

部件的id

r Number

颜色R分量,范围0~255

g Number

颜色G分量,范围0~255

b Number

颜色B分量,范围0~255

a Number

透明度,范围0~1


on(listener [, scope])

注册捕捉FdPMTSManager类的回调函数。

Parameters:
Name Type Argument Description
listener FdTools.FdPMTSManager~FdPMTSManagerCallback

当有事件触发时被执行的函数,FdPMTSManager的事件类型有“DataChanged”、“PmtsLoaded”

scope Object <optional>

listener函数执行时的绑定的对象。

Returns:

返回一个函数,调用该函数可以取消监听。

Type
Freedo.Event~RemoveCallback
Example
pmtsManager.on(function(eventType, param){
     if(eventType === 'DataChanged'){

     }
});

remove(id)

删除指定的pmts数据

Parameters:
Name Type Description
id String

pmts的id


removeAll()

删除所有pmts数据


setBaseColor(id, r, g, b, a)

设置场景模型基本颜色

Parameters:
Name Type Description
id String

pmts的id

r number

颜色R分量,范围0~255

g number

颜色G分量,范围0~255

b number

颜色B分量,范围0~255

a number

透明度,范围0~1


setComponentColor(pmtsID, uid, r, g, b, a)

设置部件颜色(效果同高亮部件)

Parameters:
Name Type Description
pmtsID String

pmts的id

uid String

部件的id

r Number

颜色R分量,范围0~255

g Number

颜色G分量,范围0~255

b Number

颜色B分量,范围0~255

a Number

透明度,范围0~1


setModelMatrix(id, modelMatrixArray, multiply)

设置pmts的模型姿态矩阵

Parameters:
Name Type Description
id String

pmts的id

modelMatrixArray Array.<Number>

模型姿态矩阵数组,包含16个数值

multiply Boolean

是否进行左乘运算,一般来说都是要设置为true,除非明确知道要做什么


showAll()

显示或者隐藏所有数据


showAllComponents()

显示所有组件


showComponent(id, uid, show)

设置部件的显隐

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id

show Bool

部件的显隐


unhighlightAllComponents(id)

取消所有高亮

Parameters:
Name Type Description
id String

pmts的id


unhighlightComponent(id, uid)

取消部件高亮

Parameters:
Name Type Description
id String

pmts的id

uid String

部件的id