Appearance
散点轮询
此功能案例实现摄像机轮询地标图
目录
1. 功能点
- 添加地标图层 addLandmarkLayer
- 相机聚焦 focusByLayer
2. 视频演示
3. 核心代码
引入版本:3.0 起支持
第一步
准备图层数据,添加图层
JavaScript
// 定义散点图标
let points = [
{
id: 'landmarkId1', // 图层子对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
label: '摄像头1', // 图标标签文本
coord: [113.937824740773, 22.518918656536], // XY 轴坐标,X:经度;Y:纬度
coordZ: 0, // Z 轴高度(单位:米)
type: 'legendName1' // 地标点的图例类别名称
},
{
id: 'landmarkId3',
label: '摄像头2',
coord: [113.939667243932, 22.5222551824044],
coordZ: 70,
type: 'legendName1'
},
{
id: 'landmarkId4',
label: '摄像头3',
coord: [113.946102105494, 22.5233873938033],
coordZ: 70,
type: 'legendName1'
},
{
id: 'landmarkId5',
label: '摄像头4',
coord: [113.930779578267, 22.5277339044635],
coordZ: 70,
type: 'legendName1'
}
]
// 添加散点图层
function addPoints() {
let jsonData = {
id: 'landmarkLayerId', // 图层对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
name: 'layerName', // 图层名称,支持为图层自定义名称
coordType: 0, // XY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y米,相对世界00点
coordTypeZ: 0, // Z 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
autoScale: false, // 如果开启后,图标会按照摄像机远近自动缩放大小
legends: [ // 定义图层包含图例,支持为不同图例定义各自样式
{
name: 'legendName1',
color: '#FFFFFF',
iconName: 'camera'
}
],
data: points // 定义图层可视化数据
}
window.appInstance.uniCall('addLandmarkLayer', jsonData, (res) => {
console.log('添加散点', res)
focusByLayer(points[0].id)
})
}第二步
使用计时器,轮询散点
JavaScript
// 聚焦图层
function focusByLayer(id) {
window.appInstance.uniCall('focusByLayer', {
id: id,
idLayer: 'landmarkLayerId',
layerType: 'landmarkLayer', //含子对象图层类别 objLayerType,详见 内置枚举
distance: 300
})
}
// 实现镜头轮询定位
function cameraPolling() {
clearInterval(window.timer)
window.timer = setInterval(() => {
index++
index %= points.length
focusByLayer(points[index].id)
}, 2000)
}