ServerConnector

CooServer服务连接器类,用于连接和解析服务专题树。

abstractnew CooWasm.ServerConnector(props)

创建CooServer服务连接器

Name Type Description
props Object

包含如下属性的Object:

Name Type Description
url String

服务地址,仅需包含协议、地址、端口。

token String

token。

bDebug Boolean

是否开启调试输出信息。

Members

bDebug : Boolean

是否开启调试输出信息。

token : String

token

url : String

服务地址,仅需包含协议、地址、端口。

Methods

destroy(layers)Object

销毁所有图层对象

Name Type Description
layers Object

包含各种图层类型数组的对象

Returns:

销毁结果统计

Example:
// 销毁所有已加载的图层
let result = serverConnector.destroy(loadedLayers);
console.log(result.message); // "成功销毁 5 个图层"
console.log(result.stats); // {ModelLayer: 2, ImageLayer: 3, ...}

destroyLayerById(layerId, layers)Object

根据图层ID销毁指定图层

Name Type Default Description
layerId String

图层ID

layers Object null optional

可选的图层数据对象,如果不提供则使用全局loadedLayers

Returns:

销毁结果

Example:
// 销毁指定的图层
let result = serverConnector.destroyLayerById('layer_123');
if (result.success) {
    console.log('销毁成功:', result.message);
    console.log('已销毁图层:', result.destroyedLayer.name);
}

asyncgetLayerInfo(layerId)Promise.<Object>

获取指定layerId的图层信息

Name Type Description
layerId String

图层ID

Returns:

返回图层信息的Promise

Example:
// 获取指定图层的详细信息
let layerInfo = await serverConnector.getLayerInfo('layer_123');
console.log(layerInfo.data.list); // 图层数据列表

asyncgetServiceTree()Promise.<Object>

获取服务信息并构建树形结构

Returns:

返回树形结构的Promise

Example:
let serverConnector = new CooWasm.ServerConnector({
    url: urlInput.value.trim(),
    token: tokenInput.value.trim()
 });

 let treeInfo = await serverConnector.getServiceTree();

load(tree)Object

加载所有叶子节点数据,根据type转换为相应的图层对象数组

Name Type Description
tree Array

服务树数据

Returns:

包含各种图层类型数组的对象

Example:
// 加载服务树中的所有图层
let treeData = await serverConnector.getServiceTree();
let layers = serverConnector.load(treeData);
console.log(layers.ModelLayer); // 模型图层数组
console.log(layers.ImageLayer); // 影像图层数组

locate(layerId, layers)Object

根据图层ID进行定位

Name Type Default Description
layerId String

图层ID

layers Object null optional

可选的图层数据对象,如果不提供则使用全局loadedLayers

Returns:

定位结果

Example:
// 定位到指定图层
let result = serverConnector.locate('layer_123');
if (result.success) {
    console.log('定位成功:', result.message);
} else {
    console.log('定位失败:', result.message);
}

setLayerVisibility(layerId, visible, layers)Object

根据图层ID控制图层显示/隐藏

Name Type Default Description
layerId String

图层ID

visible Boolean

是否显示,true为显示,false为隐藏

layers Object null optional

可选的图层数据对象,如果不提供则使用全局loadedLayers

Returns:

操作结果

Example:
// 显示指定图层
let result = serverConnector.setLayerVisibility('layer_123', true);
if (result.success) {
    console.log('图层已显示:', result.message);
}

// 隐藏指定图层
serverConnector.setLayerVisibility('layer_123', false);