'use script' //开发环境建议开启严格模式
|
;
|
|
function addItemToLayer(item, target_layer) {
|
|
$.getJSON("http://58.246.27.194:7012/dataapi/Bdata?bid=get_1004_single_path&siteid=" + item["code"], {
|
datatime1: "2021-07-01 10:00:00",
|
datatime2: "2021-07-01 10:15:00"
|
}, (result) => {
|
|
if (result.data.result.length > 0) {
|
var tmpPositionProperty = new Cesium.SampledPositionProperty();
|
for (var i = 0, len = result.data.result.length; i < len; i++) {
|
let item = result.data.result[i];
|
//console.log(item);
|
tmpPositionProperty.addSample(Cesium.JulianDate.fromDate(new Date(item["datatime"])), Cesium.Cartesian3.fromDegrees(item["lon"], item["lat"], 0.2))
|
}
|
|
let graphic = new mars3d.graphic.ModelEntity({
|
attr: result.data.result[0],
|
style: {
|
url: "gltf/" + (item["code"]).substring(0, 2) + ".gltf",
|
scale: 0.5,
|
minimumPixelSize: 20,
|
highlight: {
|
type: mars3d.EventType.click,
|
silhouette: true,
|
silhouetteColor: "#ff0000",
|
silhouetteSize: 4,
|
},
|
label: {
|
//不需要文字时,去掉label配置即可
|
text: item["code"],
|
font_size: 16,
|
// TODO need to be changed according to qindex color.
|
color: "#ff00ff",
|
outline: true,
|
outlineColor: "#000000",
|
pixelOffsetY: -20,
|
distanceDisplayCondition: true,
|
distanceDisplayCondition_far: 50000,
|
distanceDisplayCondition_near: 0,
|
},
|
},
|
});
|
graphic.position = tmpPositionProperty;
|
target_layer.addGraphic(graphic);
|
}
|
});
|
|
}
|
(function (window, mars3d) {
|
//创建widget类,需要继承BaseWidget
|
class MyWidget extends mars3d.widget.BaseWidget {
|
|
//初始化[仅执行1次]
|
create() {
|
|
map.clock.shouldAnimate = true;
|
|
map.clock.startTime = Cesium.JulianDate.fromDate(new Date("2021-07-01 10:00:00"));
|
map.clock.currentTime = Cesium.JulianDate.fromDate(new Date("2021-07-01 10:00:00"));
|
map.clock.stopTime = Cesium.JulianDate.fromDate(new Date("2021-07-01 10:15:00"));
|
map.clock.multiplier = 5.0;
|
map.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
|
|
let taxi_layer = new mars3d.layer.GraphicLayer({
|
name: '移动监测点',
|
pid: 99, //图层管理 中使用,父节点id
|
center: {"lat":30.62156,"lng":121.44918,"alt":48716,"heading":359,"pitch":-40},
|
show: true,
|
onWidget: "widgetsTS/taxi_layer_setting/widget.js",
|
});
|
map.addLayer(taxi_layer);
|
|
taxi_layer.on(mars3d.EventType.click, function (event) {
|
console.log("监听layer,单击了矢量对象", event);
|
//console.log(event.graphic?.attr)
|
var item = event.graphic?.attr;
|
//haoutil.msg('单击了:' + item['高校名称'])
|
});
|
taxi_layer.bindPopup(function (event) {
|
let item = event.graphic?.attr;
|
var html =
|
"<br/>类型: " +
|
item["code"].substring(0, 2) == "BS" ? "公交车" : "出租车" +
|
"<br />车辆编号: " +
|
item["code"] +
|
"<br/>数据时间: " +
|
item["datatime"] +
|
"<br />瞬时车速: " +
|
item["speed"] + " (km/h)" +
|
"<br />粉尘PM2.5: " +
|
item["pm25"] + " (ug/m3)" +
|
"<br />粉尘PM10: " +
|
item["pm10"] + " (ug/m3)" +
|
"<br />NO浓度: " +
|
item["no"] + " (ug/m3)" +
|
"<br />NO2浓度: " +
|
item["no2"] + " (ug/m3)" +
|
"<br />NO+NO2浓度: " +
|
item["nox"] + " (ug/m3)" +
|
"<br />CO浓度值: " +
|
item["co"] +" (mg/m3)"+
|
"<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["code"] + "\")' ><span style='color:#ff00ff'>历史轨迹回放</span></a></p>";
|
return html;
|
});
|
|
$.getJSON("http://58.246.27.194:7012/dataapi/Bdata?bid=get_1004_list_by_userid&userid=2", (result) => {
|
for (var i = 0, len = result.data.result.length; i < len; i++) {
|
let item = result.data.result[i];
|
addItemToLayer(item, taxi_layer);
|
}
|
});
|
|
}
|
|
|
//每个窗口创建完成后调用
|
winCreateOK(opt, result) {
|
|
}
|
//打开激活
|
activate() {
|
|
}
|
//关闭释放
|
disable() { }
|
|
|
}
|
|
//注册到widget管理器中。
|
mars3d.widget.bindClass(MyWidget)
|
|
//每个widet之间都是直接引入到index.html中,会存在彼此命名冲突,所以闭包处理下。
|
})(window, mars3d)
|