1. 路网绘制
在添加路网之前,需要初始化路网
1.1. 示例
从初始化到初始化路网、到获取最短路径、显示最短路径的示例
let roadNet = new BOS3D.Plugins.RoadNetManager(viewer3D);
window.roadNet = roadNet;
roadNet.initRoadNetByModelKey("M1601286135625").then((rep) => {
console.log("111");
roadNet.getShortestPath("R1608541754961", [-12723, -5555, 100], [-1507, -9692, 100]).then((data) => {
window.www = data;
data.data.key = "abc";
roadNet.addShortestPathByPoints(www.data, {
color: new BOS3D.Color("red"),
width: 1,
block: false,
});
});
});
1.2. 初始化
初始化参数 | 说明 | 类型 | 是否必填 |
---|---|---|---|
viewer3D | viewer3D 实例 | object | Y |
调用示例
const roadNet = new BOS3D.Plugins.RoadNetManager(viewer3D);
1.3. 方法
1.3.1. initRoadNetByModelKey
通过模型 key 初始化路网
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
modelKey | 模型 key | string | Y | "M1601286135625" |
返回值说明 | 类型 |
---|---|
Promise |
调用示例
/**
* 通过模型key初始化路网
* @function initRoadNetByModelKey
* @param {string} modelKey 模型key
* @return {Promise} 初始化完成触发then,出错触发catch,错误原因为catch的参数
*/
let promise = roadNet.initRoadNetByModelKey("M1601286135625");
1.3.2. getRoadNetInfoListByModelKey
通过模型 key 获取路网信息
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
modelKey | 模型 key | string | Y | "M1601286135625" |
返回值说明 | 类型 |
---|---|
路网信息 | Object: {路网 key:路网信息} |
调用示例
/**
* 通过模型key获取路网信息
* @function getRoadNetInfoListByModelKey
* @param {string} key 模型key
* @return {Object} {路网key:路网信息}
*/
roadNet.getRoadNetInfoListByModelKey("M123");
1.3.3. addRoadNetByKey
添加路网到场景中
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
parameter | 显示的参数 | Object | Y | "R1601286135625" |
parameter.color | 路网颜色 | Object | Y | new BOS3D.Color() |
parameter.width | 路网宽度 默认 1 | Object | N | 2 |
parameter.block | 路网是否被遮挡 默认 true | Object | N | false |
返回值说明 | 类型 |
---|---|
Promise |
调用示例
/**
* 添加路网到场景中
* @function addRoadNetByKey
* @param {string} key 路网key
* @param {Object} [parameter] 显示的参数
* @param {BOS3D.Color} [parameter.color] 路网颜色
* @param {number} [parameter.width] 路网宽度 默认1
* @param {boolean} [parameter.block] 路网是否被遮挡 默认true
* @return {Promise} 添加完成触发then,出错触发catch,错误原因为catch的参数
*/
roadNet.addRoadNetByKey("R123", {
color: new BOS3D.Color("red"),
width: 1,
block: false,
});
1.3.4. removeRoadNetByKey
从场景中移除路网
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 从场景中移除路网
* @function removeRoadNetByKey
* @param {string} key 路网key
* @return {void}
*/
roadNet.removeRoadNetByKey("R123");
1.3.5. showRoadNetByKey
显示路网
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 显示路网
* @function showRoadNetByKey
* @param {string} key 路网key
* @return {void}
*/
roadNet.showRoadNetByKey("R123");
1.3.6. hideRoadNetByKey
隐藏路网
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 隐藏路网
* @function hideRoadNetByKey
* @param {string} key 路网key
* @return {void}
*/
roadNet.hideRoadNetByKey("R123");
1.3.7. setRoadNetColorByKey
设置路网颜色
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
color | 路网颜色 | Object | Y | new BOS3D.Color() |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 设置路网颜色
* @function setRoadNetColorByKey
* @param {string} key 路网key
* @param {BOS3D.Color} color 颜色
* @return {void}
*/
roadNet.setRoadNetColorByKey("R123", new BOS3D.Color());
1.3.8. setRoadNetBlockByKey
设置路网是否被遮挡
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
block | 路网是否被遮挡 | Object | Y | false |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 设置路网是否被遮挡
* @function setRoadNetBlockByKey
* @param {string} key 路网key
* @param {boolean} block 是否被遮挡
* @return {void}
*/
roadNet.setRoadNetBlockByKey("R123", true);
1.3.9. setRoadNetLineWidthByKey
设置路网线宽
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R1601286135625" |
width | 路网宽度 | Object | Y | 2 |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 设置路网线宽
* @function setRoadNetLineWidthByKey
* @param {string} key 路网key
* @param {number} width 宽度
* @return {void}
*/
roadNet.setRoadNetLineWidthByKey("R123", 2);
1.3.10. removeShortestPathByKey
从场景中移除最短路径
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 最短路径 key | string | Y | "R1601286135625" |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 从场景中移除最短路径
* @function removeShortestPathByKey
* @param {string} key 最短路径key
* @return {void}
*/
roadNet.removeShortestPathByKey("R123");
1.3.11. showShortestPathByKey
显示最短路径
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 最短路径 key | string | Y | "R1601286135625" |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 显示最短路径
* @function showShortestPathByKey
* @param {string} key 最短路径key
* @return {void}
*/
roadNet.showShortestPathByKey("R123");
1.3.12. hideShortestPathByKey
隐藏最短路径
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 最短路径 key | string | Y | "R1601286135625" |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 隐藏最短路径
* @function hideShortestPathByKey
* @param {string} key 最短路径key
* @return {void}
*/
roadNet.hideShortestPathByKey("R123");
1.3.13. setShortestPathColorByKey
设置最短路径颜色
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 最短路径 key | string | Y | "R1601286135625" |
color | 最短路径颜色 | Object | Y | new BOS3D.Color() |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 设置最短路径颜色
* @function setShortestPathColorByKey
* @param {string} key 最短路径key
* @param {BOS3D.Color} color 颜色
* @return {void}
*/
roadNet.setShortestPathColorByKey("R123", new BOS3D.Color());
1.3.14. setShortestPathBlockByKey
设置最短路径是否被遮挡
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 最短路径 key | string | Y | "R1601286135625" |
block | 最短路径是否被遮挡 | Object | Y | false |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 设置最短路径是否被遮挡
* @function setShortestPathBlockByKey
* @param {string} key 最短路径key
* @param {boolean} block 是否被遮挡
* @return {void}
*/
roadNet.setShortestPathBlockByKey("R123", true);
1.3.15. setShortestPathLineWidthByKey
设置最短路径线宽
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 最短路径 key | string | Y | "R1601286135625" |
width | 最短路径宽度 | Object | Y | 2 |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 设置最短路径线宽
* @function setShortestPathLineWidthByKey
* @param {string} key 最短路径key
* @param {number} width 宽度
* @return {void}
*/
roadNet.setShortestPathLineWidthByKey("R123", 2);
1.3.16. getShortestPath
获取最短路径
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 路网 key | string | Y | "R123" |
start | 起点坐标 (模型局部坐标) | number[] | Y | [1000,2000,3000] |
end | 终点坐标 (模型局部坐标) | number[] | Y | [1000,2000,3000] |
type | 路网类型 | string | N | "topo" |
返回值说明 | 类型 |
---|---|
Promise |
调用示例
/**
* 获取最短路径
* @function getShortestPath
* @param {string} key 路网key
* @param {array} start 起点坐标 (模型局部坐标)
* @param {array} end 终点坐标 (模型局部坐标)
* @param {string} type 路网类型,默认topo
* @return {Promise} 初始化完成触发then,出错触发catch,参数为对象,code标记状态
* 成功示例:{
code: "success",
data: {
routeKey: key,
points: data.data
},
start,
end
}
* 失败示例:{
code: "error",
detail: err,
start,
end
}
*/
roadNet.getShortestPath("R123456789", [1000, 2000, 3000], [4000, 5000, 6000], "topo");
1.3.17. addShortestPathByPoints
添加最短路径到场景中
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
data | 路径数据 | string | Y | |
data.routeKey | 路径数据 | string | Y | "R1601286135625" |
data.points | 路径点 | Array | Y | [[1,2,3],[4,5,6]] |
data.key | 路径的 key ,默认随机生成 | string | Y | "key123" |
parameter | 显示的参数 | Object | Y | |
parameter.color | 路网颜色 | Object | Y | new BOS3D.Color() |
parameter.width | 路网宽度 默认 1 | Object | N | 2 |
parameter.block | 路网是否被遮挡 默认 true | Object | N | false |
返回值说明 | 类型 |
---|---|
Promise |
示例
/**
* 添加最短路径到场景中
* @function addShortestPathByPoints
* @param {Object} [data] 路径数据
* @param {Object} [data.routeKey] 对应的路网key
* @param {Object} [data.points] 路径点
* @param {Object} [data.key] 路径的key,默认随机生成
* @param {Object} [parameter] 显示的参数
* @param {BOS3D.Color} [parameter.color] 路网颜色
* @param {number} [parameter.width] 路网宽度 默认1
* @param {boolean} [parameter.block] 路网是否被遮挡 默认true
* @return {Promise} 添加完成触发then,出错触发catch
*/
roadNet.addShortestPathByPoints(
{
routeKey: "R123",
key: "123",
points: [
[, 1, 2, 3],
[4, 5, 6],
],
},
{
color: new BOS3D.Color("red"),
width: 1,
block: false,
}
);
1.3.18. roamByShortestPathData
按最短路径漫游
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
data | 路径数据 | string | Y | |
data.routeKey | 路径数据 | string | Y | "R1601286135625" |
data.points | 路径点 | Array | Y | [[1,2,3],[4,5,6]] |
data.key | 路径的 key ,默认随机生成 | string | Y | "key123" |
options | 显示的参数 | Object | Y | |
options.speed | 漫游的速度,每秒钟移动的单位。默认为 1000,即 1 秒钟移动 1000 个单位 | number | N | 2000 |
options.frameTime | 帧周期,每秒钟重复的次数 默认 14 | number | N | 2 |
options.height | 漫游时在路径上增加的高度 默认 0 | number | N | 100 |
options.callbackProcess | 每一帧的回调 | function | N | function(){} |
options.callbackFinish | 完成关键帧的回调 | function | N | function(){} |
options.callbackAllFinish | 全部完成的回调 | function | N | function(){} |
返回值说明 | 类型 |
---|---|
无 | null |
示例
/**
* 按最短路径漫游
* @function roamByShortestPathData
* @param {Object} [data] 路径数据
* @param {Object} [data.routeKey] 对应的路网key
* @param {Object} [data.points] 路径点
* @param {Object} [options] 显示的参数
* @param {number} [options.speed] 漫游的速度,每秒钟移动的单位。默认为1000,即1秒钟移动1000个单位
* @param {number} [options.frameTime] 帧周期,每秒钟重复的次数 默认14
* @param {number} [options.height] 漫游时在路径上增加的高度 默认0
* @param {function} [options.callbackProcess] 每一帧的回调
* @param {function} [options.callbackFinish] 完成关键帧的回调
* @param {function} [options.callbackAllFinish] 全部完成的回调
* @return {void}
*/
roadNet.roamByShortestPathData(
{
routeKey: "R123",
key: "123",
points: [
[, 1, 2, 3],
[4, 5, 6],
],
},
{
speed: 2000,
frameTime: 10,
height: 1500,
}
);
1.3.19. stopRoam
停止最短路径漫游
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
无 | null | null | null | null |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 停止最短路径漫游
* @function stopRoam
* @return {void}
*/
roadNet.stopRoam();
1.3.20. update
更新场景中路网和路径。如果模型矩阵有变化,则需要调用这个方法更新
参数 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
无 | null | null | null | null |
返回值说明 | 类型 |
---|---|
无 | null |
调用示例
/**
* 更新场景中路网和路径
* @function update
* @return {void}
*/
roadNet.update();