实现时序位置坐标
一、
1、现有数据如下
const arrData = [
{
title: "中国安徽广播电视台",
description: "安徽广播电视台(AHTV)是集广播、电视、报纸、</br>网络、新媒体等多种业务为一体的省级广播电视综合传</br>媒机构。",
center: { lat: 31.817346, lng: 117.216403, alt: 342, heading: 168, pitch: -13, duration: 2 },
position: [117.219971, 31.808482, 264.9],
startTime: "2017/08/25 08:00:04",
endTime: "2017/08/25 08:00:07",
},
{
title: "合肥市政务中心",
description: "合肥市人民政府政务服务中心为市委、市政府派出机构,</br>服务中心成立党工委和管委会,内设综合处、</br>督查处、审批项目协调处",
center: { lat: 31.818069, lng: 117.221763, alt: 173, heading: 355, pitch: -5, duration: 3 },
position: [117.222139, 31.822782, 166.6],
startTime: "2017/08/25 08:00:09",
endTime: "2017/08/25 08:00:12",
},
{
title: "合肥市文化旅游局",
description: "合肥市文化和旅游局和市文化和旅游局是市政府工作部门,</br>为正处级,加挂市广播电视新闻出版局牌子",
center: { lat: 31.813929, lng: 117.217225, alt: 142, heading: 330, pitch: -14, duration: 3 },
position: [117.215827, 31.818229, 84.6],
startTime: "2017/08/25 08:00:14",
endTime: "2017/08/25 08:00:17",
},
{
title: "合肥大剧院",
description: "合肥大剧院又名天鹅湖大剧院,主要由歌剧厅、</br>音乐厅、多功能厅等部分组成。",
center: { lat: 31.815301, lng: 117.218273, alt: 107, heading: 11, pitch: -13, duration: 3 },
position: [117.218782, 31.8176, 64.9],
startTime: "2017/08/25 08:00:19",
endTime: "2017/08/25 08:00:22",
},
];
要想实现坐标位置按照时间顺序展示出,这个地方就需要控制展示的开始时间和结束时间,以及视角的切换
坐标位置显示部分主要代码
const property = new Cesium.SampledPositionProperty()
const startTime = Cesium.JulianDate.fromDate(new Date(arrData[i].startTime))
const endTime = Cesium.JulianDate.fromDate(new Date(arrData[i].endTime))
property.addSample(startTime, Cesium.Cartesian3.fromDegrees(...arrData[i].position)) // 此刻显示
property.addSample(endTime, Cesium.Cartesian3.fromDegrees(...arrData[i].position)) // 此刻不显示
视角控制主要代码
centerArr是视角center集合,通过调用 map.setCameraViewList()
方法可以自动控制相机视角的切换。
map.setCameraViewList(centerArr) // 视角