//获取项目点
|
var currentProjectId;
|
var currentLng, currentLat;
|
var pickedModel;//拾取的模型
|
|
function getProjectList() {
|
var projectList = [];
|
$.ajax({
|
type: "post",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/webgis/listProjects?access_token=" + access_token,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
if (data != null && data.length > 0) {
|
projectList = data;
|
}
|
},
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
console.log("ajax请求失败!");
|
}
|
});
|
return projectList;
|
}
|
|
function getProjectInfoName(id) {
|
|
$.ajax({
|
type: "get",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/clientgis/projectInfo?project_id=" + id,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
|
var name = data.name;
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
|
layer.msg(name + "<br>" + "(鼠标双击查看场地)");
|
});
|
|
},
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
console.log("ajax请求失败!");
|
}
|
});
|
}
|
|
//从后台点击进来
|
function getProjectByIdInit(id) {
|
currentProjectId = id;
|
$.ajax({
|
type: "get",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/clientgis/worksite_models?project_id=" + id,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
var info = data.projectinfo;
|
|
var lat = info.latitude;
|
var lng = info.longitude;
|
currentLng = lng;
|
currentLat = lat;
|
|
if (lng != null && lat != null) {
|
|
hideSearch(); //隐藏左边的列表
|
// addProjectIcon(info);//添加定位的图标
|
viewer.clock.onTick.removeEventListener(onTickCallback);//移除地球转动
|
|
var ug = data.underground;//地下模型
|
|
toProjectPointOnMap(lng, lat, 1500);//跳转
|
|
//添加地上模型
|
var ground = data.ground;
|
addGroundModel(ground);
|
|
//添加地下模型
|
var underground = data.underground;
|
addUnderGround(underground);
|
|
var boundary = data.boundary.boundary;
|
addBondary(boundary);
|
|
}
|
},
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
layer.msg("请求失败");
|
console.log("ajax请求失败!");
|
}
|
});
|
|
}
|
|
function clearDrsDiv() {
|
|
$(".drsElement").remove();
|
|
}
|
|
/**
|
* 点击项目
|
*/
|
function getProjectByIdClick(projectId) {
|
clearDrsDiv();
|
$("#model-tree").hide();
|
$("#model-entity").hide();
|
$("#model-tree-timeline").hide();
|
$("#model-icons").hide();
|
//隐藏按钮
|
$("#delete").hide()
|
$("#save").hide()
|
$.ajax({
|
type: 'GET',
|
dataType: 'json',
|
async: false,
|
url: httpConfig.webApiUrl + 'v1/env/projectstatistic/getTemplateIdByProjectId',
|
data: {
|
projectId: projectId
|
},
|
contentType: 'application/x-www-form-urlencoded',
|
success(data) {
|
var templateIds = data.ids;
|
var currentLevel = data.level
|
var currentTemplateId = data.id;
|
$.ajax({
|
type: 'GET',
|
dataType: 'json',
|
async: false,
|
url: httpConfig.webApiUrl + '/v1/env/dataTransfer/getTemplateName',
|
data: {
|
level: currentLevel,
|
current: currentTemplateId,
|
enterType: 1
|
},
|
contentType: 'application/x-www-form-urlencoded',
|
success(data) {
|
console.log(data);
|
var element = document.getElementById("templateName");
|
element.innerText = data;
|
}
|
});
|
|
if (currentTemplateId != null && currentTemplateId != "") {
|
$.ajax({
|
type: 'GET',
|
dataType: 'json',
|
async: false,
|
url: httpConfig.webApiUrl + 'v1/env/dataTransfer/panels',
|
data: {
|
templateId: currentTemplateId
|
},
|
contentType: 'application/x-www-form-urlencoded',
|
success(data) {
|
panelList = data;
|
renderProjectChart(panelList, projectId, null);
|
}
|
});
|
}
|
|
getProjectByIdInit(projectId);//跳转
|
|
}
|
})
|
|
|
}
|
|
|
//点击项目列表中的
|
function getProjectById(id) {
|
currentProjectId = id;
|
$.ajax({
|
type: "get",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/clientgis/worksite_models?project_id=" + id,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
var info = data.projectinfo;
|
|
var lat = info.latitude;
|
var lng = info.longitude;
|
currentLng = lng;
|
currentLat = lat;
|
|
if (lng != null && lat != null) {
|
|
hideSearch(); //隐藏左边的列表
|
addProjectIcon(info);//添加定位的图标
|
viewer.clock.onTick.removeEventListener(onTickCallback);//移除地球转动
|
|
var ug = data.underground;//地下模型
|
|
toProjectPointOnMap(lng, lat, 1000);//跳转
|
|
//添加地上模型
|
var ground = data.ground;
|
addGroundModel(ground);
|
|
//添加地下模型
|
var underground = data.underground;
|
addUnderGround(underground);
|
|
var boundary = data.boundary.boundary;
|
addBondary(boundary);
|
|
modelTreeList(id);
|
|
flyExtent(lng, lat, 100);
|
|
}
|
},
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
layer.msg("请求失败");
|
console.log("ajax请求失败!");
|
}
|
});
|
}
|
|
|
//模型树结构
|
function modelTreeList(projectId) {
|
|
$("#model-tree").show();
|
$.ajax({
|
type: "get",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/projectModel/projectModels2?projectId=" + projectId + "&access_token=" + access_token,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
|
layui.use(['element', 'layer', 'form', 'upload', 'tree', 'util'], function () {
|
var element = layui.element;
|
var form = layui.form;
|
var $ = layui.jquery, upload = layui.upload;
|
var tree = layui.tree, util = layui.util, layer = layui.layer
|
|
tree.render({
|
elem: '#model-tree-list'
|
, data: data
|
, showCheckbox: true //是否显示复选框
|
, id: 'model-tree-list'
|
, isJump: false //是否允许点击节点时弹出新窗口跳转
|
, click: function (obj) {
|
var data = obj.data; //获取当前点击的节点数据
|
var id = data.id;
|
getModelById(id);
|
}
|
, oncheck: function (obj) {
|
|
var ischeck = obj.checked;
|
var objData = obj.data;
|
var arr = new Array();
|
arr.push(objData);
|
|
var ids = getChecked_list(arr);
|
var idArray = ids.split(",");
|
|
for (var i = 0; i < idArray.length; i++) {
|
if (idArray[i] == null || idArray[i] == "") {
|
continue;
|
}
|
var model = getprimitiveModel(idArray[i]);
|
if (ischeck == true) {
|
model.show = true;
|
} else {
|
model.show = false;
|
}
|
|
}
|
|
}
|
});
|
|
$(document).on('click', '#modelTreeShow', function (data) {
|
checkData = tree.getChecked('model-tree-list');
|
var list = new Array();
|
list = getChecked_list(checkData);
|
var array = list.split(",");
|
for (var i = 0; i < array.length; i++) {
|
if (array[i] == null || array[i] == "") {
|
continue;
|
}
|
var model = getprimitiveModel(array[i]);
|
model.show = true;
|
|
}
|
|
});
|
|
$(document).on('click', '#modelTreeHide', function (data) {
|
checkData = tree.getChecked('model-tree-list');
|
var list = new Array();
|
list = getChecked_list(checkData);
|
var array = list.split(",");
|
for (var i = 0; i < array.length; i++) {
|
if (array[i] == null || array[i] == "") {
|
continue;
|
}
|
console.log(array[i]);
|
var model = getprimitiveModel(array[i]);
|
model.show = false;
|
|
}
|
|
});
|
|
|
//递归获取树结构列表
|
function getChecked_list(data) {
|
|
var id = "";
|
$.each(data, function (index, item) {
|
var tmpId = item.id;
|
if (tmpId != "" && tmpId != "-1" && tmpId != -1) {
|
id = id + "," + tmpId;
|
}
|
|
//item 没有children属性
|
if (item.children != null) {
|
var i = getChecked_list(item.children);
|
if (i != "") {
|
id = id + "," + i;
|
}
|
}
|
});
|
return id;
|
}
|
|
});
|
|
},
|
error: function () {
|
|
}
|
});
|
}
|
//显示模型
|
function modelTreeShow() {
|
|
|
|
}
|
//隐藏模型
|
function modelTreeHide() {
|
|
}
|
|
//获取模型修改
|
function getModelById(id) {
|
|
|
$.ajax({
|
type: "get",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/projectModel/getProjectModelById?id=" + id + "&access_token=" + access_token,
|
// contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
$("#model-entity").show();
|
|
var lng = data.lng;
|
var lat = data.lat;
|
|
viewer.camera.flyTo({
|
destination: Cesium.Cartesian3.fromDegrees(lng, lat, 1000),
|
duration: 1
|
|
});
|
|
$('#modelId').val(data.id);
|
|
$('#modelName').html(data.model.name);
|
|
$("#modelX").val(data.lng || 0);
|
$("#modelY").val(data.lat || 0);
|
$("#modelZ").val(data.height || 0);
|
$("#modelHeading").val(data.heading || 0);
|
$("#modelPitch").val(data.pitch || 0);
|
$("#modelRoll").val(data.roll || 0);
|
$("#modelScale").val(data.scale || 0);
|
|
pickedModel = getprimitiveModel(id);//选中的模型
|
|
|
},
|
error: function (data) {
|
|
layer.msg("地下物体禁止修改参数");
|
}
|
});
|
|
}
|
|
//更新地图上模型的位置
|
function updateModel() {
|
|
var lng = $("#modelX").val();
|
|
var lat = $("#modelY").val();
|
var height = $("#modelZ").val();
|
var rx = $("#modelHeading").val();
|
var ry = $("#modelPitch").val();
|
var rz = $("#modelRoll").val();
|
var scale = $("#modelScale").val();
|
|
//获取更新的参数
|
|
var params = {
|
tx: lng, //模型中心X轴坐标(经度,单位:十进制度)
|
ty: lat, //模型中心Y轴坐标(纬度,单位:十进制度)
|
tz: height, //模型中心Z轴坐标(高程,单位:米)
|
rx: rx, //X轴(经度)方向旋转角度(单位:度)
|
ry: ry, //Y轴(纬度)方向旋转角度(单位:度)
|
rz: rz, //Z轴(高程)方向旋转角度(单位:度)
|
scale: scale
|
};
|
|
update3dtilesMaxtrix(pickedModel, params);
|
|
}
|
|
//定位模型
|
function locateModel() {
|
var lng = $("#modelX").val();
|
var lat = $("#modelY").val();
|
viewer.camera.flyTo({
|
destination: Cesium.Cartesian3.fromDegrees(lng, lat, 800),
|
duration: 1
|
|
});
|
}
|
|
//保存模型位置
|
function saveModel() {
|
|
|
var id = parseInt($('#modelId').val());
|
|
var lng = $("#modelX").val();
|
|
var lat = $("#modelY").val();
|
var height = $("#modelZ").val();
|
var rx = $("#modelHeading").val();
|
var ry = $("#modelPitch").val();
|
var rz = $("#modelRoll").val();
|
var scale = $("#modelScale").val();
|
|
$.ajax({
|
type: "POST",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/projectModel/updateModelPosition",
|
contentType: "application/json",
|
dataType: "json",
|
data: JSON.stringify({
|
"id": id,
|
"lng": lng,
|
"lat": lat,
|
"height": height,
|
"heading": rx,
|
"pitch": ry,
|
"roll": rz,
|
"scale": scale
|
}),
|
success: function (data) {
|
layer.msg("保存参数成功");
|
},
|
error: function () {
|
layer.msg("net error");
|
}
|
});
|
|
|
|
}
|
|
function closeModel() {
|
$("#model-entity").hide();
|
}
|
|
|
//关闭树列表
|
function closeModelTree() {
|
$("#model-tree").hide();
|
$("#model-entity").hide();
|
}
|
|
function closeModelTreeTimeLine() {
|
$("#model-tree").hide();
|
$("#model-entity").hide();
|
$("#model-tree-timeline").hide();
|
}
|
|
//项目的图例
|
function projectIcons(projectid) {
|
$.ajax({
|
type: "POST",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/webgis/projectIcons?project_id=" + projectid,
|
contentType: "application/json",
|
dataType: "json",
|
success: function (data) {
|
|
if (data != null && data.length > 0) {
|
$("#model-icons").show();
|
|
var name = data[0].name;
|
var str = data[0].tag;
|
var tags = JSON.parse(str);
|
|
layui.use('laytpl', function () {
|
|
var laytpl = layui.laytpl;
|
|
//模板引擎 searchpanel
|
var getTpl = modelIcons.innerHTML, view = document.getElementById('model-icons');
|
laytpl(getTpl).render(tags, function (html) {
|
view.innerHTML = html;
|
});
|
|
});
|
//显示名称
|
$("#modelIconsName").html("");
|
$("#modelIconsName").html(name);
|
|
}
|
|
},
|
error: function () {
|
layer.msg("net error");
|
}
|
});
|
|
}
|
|
//地上
|
function addGroundModel(models) {
|
for (let i = 0; i < models.length; i++) {
|
var url = models[i].model.gltf_path;
|
var lng = models[i].lng;
|
var lat = models[i].lat;
|
var height = models[i].height;
|
var heading = models[i].heading;
|
var pitch = models[i].pitch;
|
var roll = models[i].roll;
|
var scale = models[i].scale;
|
|
addGltf(url, lng, lat, height, heading, pitch, roll, scale, models[i].id);
|
}
|
|
}
|
|
//地下
|
function addUnderGround(models) {
|
|
for (let i = 0; i < models.length; i++) {
|
|
var url = models[i].obj_url;
|
|
var fullpath = httpConfig.nginxUrl + url;
|
var lng = models[i].lng;
|
var lat = models[i].lat;
|
var height = models[i].height;
|
|
addGltf(fullpath, lng, lat, -10, 0, 0, 0, 1, models[i].tiles_id);
|
}
|
}
|
|
//边界
|
function addBondary(jsonStr) {
|
|
let b = [];
|
var array = JSON.parse(jsonStr);
|
for (let i = 0; i < array.length; i++) {
|
b.push(array[i].x);
|
b.push(array[i].y);
|
}
|
|
var glowingLine = viewer.entities.add({
|
name: "lightLine",
|
|
polyline: {
|
positions: Cesium.Cartesian3.fromDegreesArray(b),
|
width: 10,
|
material: new Cesium.PolylineGlowMaterialProperty({
|
glowPower: 0.2,
|
color: Cesium.Color.BLUE,
|
}),
|
followSurface: true, //是否贴着地表
|
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0.0, 5000.0),
|
},
|
});
|
|
}
|
|
|
//添加项目的定位的图标
|
function addProjectIcon(entity) {
|
var icon = viewer.entities.getById("project_" + entity.id);
|
if (icon == undefined) {//如果不存在则添加
|
var lng = entity.longitude;
|
var lat = entity.latitude;
|
if (lng == null || lng == "" || lat == null || lat == "") {
|
console.log("经纬度信息有误");
|
return;
|
|
}
|
viewer.entities.add({
|
id: "project_" + entity.id,
|
name: entity.name,
|
position: Cesium.Cartesian3.fromDegrees(entity.longitude, entity.latitude, 20),
|
label: {
|
show: true,
|
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
font: 'bold 14px Helvetica',
|
fillColor: Cesium.Color.WHITE,
|
text: entity.name,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND,
|
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000000.0, 200000000.0)
|
|
},
|
billboard: {
|
image: '../assets/images/map/location-red.png',
|
width: 24,
|
height: 24,
|
rotation: 0,
|
verticalOrigin: Cesium.VerticalOrigin.TOP,
|
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,//广告牌不进行深度检测
|
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND,
|
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000000.0, 200000000.0)
|
}
|
});
|
}
|
}
|
|
//添加项目点到地图上
|
function addProjectIcons(data) {
|
if (data == null) {
|
console.log("数据为空");
|
return;
|
}
|
for (var i = 0; i < data.length; i++) {
|
var entity = data[i];
|
var icon = viewer.entities.getById("project_" + entity.id);
|
if (icon == undefined) {//如果不存在则添加
|
var lng = entity.longitude;
|
var lat = entity.latitude;
|
if (lng == null || lng == "" || lat == null || lat == "") {
|
console.log(entity.name + "经纬度信息有误");
|
continue;
|
}
|
var name = entity.name;
|
if (name.length > 6) {
|
name = name.substring(0, 6) + "...";
|
}
|
viewer.entities.add({
|
id: "project_" + entity.id,
|
name: entity.name,
|
position: Cesium.Cartesian3.fromDegrees(entity.longitude, entity.latitude),
|
|
label: {
|
show: true,
|
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
font: 'bold 14px Helvetica',
|
fillColor: Cesium.Color.WHITE,
|
text: name,
|
fillColor: Cesium.Color.WHITE,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000000.0, 200000000.0)
|
},
|
billboard: {
|
image: '../assets/images/map/location-red.png',
|
width: 40,
|
height: 40,
|
rotation: 0,
|
verticalOrigin: Cesium.VerticalOrigin.TOP,
|
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,//广告牌不进行深度检测
|
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
|
distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1000000.0, 200000000.0)
|
|
}
|
});
|
}
|
|
}
|
}
|
|
|
|
//自动旋转地球 绕点旋转
|
function flyExtent(lng, lat, height) {
|
var pitch = Cesium.Math.toRadians(-10);
|
var angle = 360 / 30;
|
var distance = 2000;
|
var startTime = Cesium.JulianDate.fromDate(new Date());
|
var stopTime = Cesium.JulianDate.addSeconds(startTime, 10, new Cesium.JulianDate());//转动时长 单位秒
|
viewer.clock.multiplier = 100; //速度
|
viewer.clock.startTime = startTime.clone();
|
viewer.clock.stopTime = stopTime.clone();
|
viewer.clock.currentTime = startTime.clone(); // 当前时间
|
viewer.clock.clockRange = Cesium.ClockRange.CLAMPED; // 行为方式
|
viewer.clock.clockStep = Cesium.ClockStep.SYSTEM_CLOCK; // 时钟设置为当前系统时间; 忽略所有其他设置。
|
var initialHeading = viewer.camera.heading;
|
var Exection = function TimeExecution() {
|
var delTime = Cesium.JulianDate.secondsDifference(viewer.clock.currentTime, viewer.clock.startTime) / 5;//控制转速
|
var heading = Cesium.Math.toRadians(delTime * angle) + initialHeading;
|
viewer.scene.camera.setView({
|
destination: Cesium.Cartesian3.fromDegrees(lng, lat, height), // 点的坐标
|
orientation: {
|
heading: heading,
|
pitch: pitch,
|
}
|
});
|
viewer.scene.camera.moveBackward(distance);
|
if (Cesium.JulianDate.compare(viewer.clock.currentTime, viewer.clock.stopTime) >= 0) {
|
viewer.clock.onTick.removeEventListener(Exection);
|
}
|
|
};
|
viewer.clock.onTick.addEventListener(Exection);
|
|
}
|
|
|
|
//飞跃到项目点
|
function toProjectPointOnMap(lng, lat, height) {
|
|
viewer.camera.flyTo({
|
destination: Cesium.Cartesian3.fromDegrees(lng, lat, height),
|
duration: 5,
|
complete: function () {
|
viewer.camera.setView({
|
destination: Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat - 0.01), Number(300)),
|
orientation: {
|
heading: viewer.camera.heading,
|
pitch: Cesium.Math.toRadians(-15),
|
|
}
|
});
|
}
|
});
|
|
}
|
//飞跃到项目
|
function toProjectPointOnMap2(id) {
|
var project = getProjectEntity(id);
|
var lng = project.longitude;
|
var lat = project.latitude;
|
viewer.camera.flyTo({
|
destination: Cesium.Cartesian3.fromDegrees(lng, lat, 3000),
|
});
|
}
|
|
|
|
//展示详情
|
function showProjectDetails(id) {
|
isProjectDetailsShow = true;
|
loadEnvProjectTable(id);
|
$("#projectDetails").show();
|
|
$('#projectList').hide();
|
isProjectListShow = false;
|
$.timeliner({
|
startOpen: ['#19550828EX', '#19630828EX']
|
});
|
$.timeliner({
|
timelineContainer: '#timelineContainer_2'
|
});
|
$('#viewer').viewer({ url: "data-original" });
|
}
|
//重新复制了上面的方法
|
function showProjectDetails2(id) {
|
isProjectDetailsShow = true;
|
loadEnvProjectTable(id);
|
$("#projectDetails").show();
|
|
$('#projectList').hide();
|
isProjectListShow = false;
|
$.timeliner({
|
startOpen: ['#19550828EX', '#19630828EX']
|
});
|
$.timeliner({
|
timelineContainer: '#timelineContainer_2'
|
});
|
$('#viewer').viewer({ url: "data-original" });
|
}
|
|
function loadEnvProjectTable(id) {
|
var pj = getProjectEntity(id);
|
$("#env_project_table").html();
|
var content = "";
|
|
content += '<tr><td style="width:20%;">' + '名称' + '</td>' + '<td>' + pj.name + '</td>' + '</tr>'
|
+ '<tr><td>' + '地址' + '</td>' + '<td>' + getPjAddr(pj) + '</td>' + '</tr>'
|
+ '<tr><td>' + '经纬度' + '</td>' + '<td>' + pj.longitude + ',' + pj.latitude + '</td>' + '</tr>'
|
+ '<tr><td>' + '负责人' + '</td>' + '<td>' + '李静文、王文峰' + '</td>' + '</tr>'
|
+ '<tr><td>' + '详情' + '</td>' + '<td>'
|
+ '<a onclick="viewProjectDetail(' + pj.id + ')"><font color="white">查看更多</font></a>'
|
+ '</td>' + '</tr>';
|
$("#env_project_table").html(content);
|
}
|
|
function getPjAddr(pj) {
|
var content = "";
|
if (pj.province != null && pj.province != "" && typeof (pj.province) != "undefined") {
|
content += pj.province;
|
}
|
if (pj.city != null && pj.city != "" && typeof (pj.city) != "undefined") {
|
content += "," + pj.city;
|
}
|
if (pj.address != null && pj.address != "" && typeof (pj.address) != "undefined") {
|
content += "," + pj.address;
|
}
|
return content;
|
|
}
|
|
//
|
function getProjectEntity(id) {
|
for (var i = 0; i < p_points.length; i++) {
|
if (p_points[i].id == id) {
|
return p_points[i];
|
}
|
}
|
return null;
|
}
|
|
//加载边界
|
function loadboundary() {
|
|
var data = "116.39076592481405,39.913584611326485,46.531462546812534,116.39084095094661,39.90804862957625,47.7467262344139,116.40255134076679,39.90803117821826,48.51718798514972,116.40243556060928,39.91354936267734,47.88634387056292";
|
|
//var data="117.27203264700,39.08399749170,0,117.27205064000,39.08505047340,0,117.27191064300,39.08506047270,0,117.27190764200,39.08519647040,0,117.27056067100,39.08520046520,0,117.27038067600,39.08516046520,0,117.26913170300,39.08516146040,0,117.26883071100,39.08492046350,0,117.26879071200,39.08489046380,0,117.26831072500,39.08450046880,0,117.26823733600,39.08445096340,0,117.26752074400,39.08413047230,0,117.26678116600,39.08400387450,0,117.26628529500,39.08403456000,0,117.26559078700,39.08406046620,0,117.26448037300,39.08416323810,0,117.26300084200,39.08439045060,0,117.26244985200,39.08471644280,0,117.26213086000,39.08450044530,0,117.26187460300,39.08441590520,0,117.26143262700,39.08376448910,0,117.26135389000,39.08343363560,0,117.26144892900,39.08333475700,0,117.26136089100,39.08317631100,0,117.26117008300,39.08317673850,0,117.26112588900,39.08313298610,0,117.26121496400,39.08306214190,0,117.26109089400,39.08263047400,0,117.26096684300,39.08245841270,0,117.26087383900,39.08246214570,0,117.26056375300,39.08127532740,0,117.26033092300,39.08072050440,0,117.26033092300,39.08067050530,0,117.26038092200,39.08061050650,0,117.26014093000,39.08019051290,0,117.26026092800,39.08013051440,0,117.26008493400,39.07984651870,0,117.26031202800,39.07979954030,0,117.26031092900,39.07975052120,0,117.26027093100,39.07969052210,0,117.26019715200,39.07932553450,0,117.26040993100,39.07910853280,0,117.26252088500,39.07908054130,0,117.26328086900,39.07906054450,0,117.26666079600,39.07882056160,0,117.26710078700,39.07878056390,0,117.26837076000,39.07866057090,0,117.26995535900,39.07851339180,0,117.27115070200,39.07825058860,0,117.27228832200,39.07798008280,0,117.27244992500,39.07786292720,0,117.27437263600,39.07760061210,0,117.27418644900,39.07923437610,0,117.27423062200,39.08031056440,0,117.27424062000,39.08061055920,0,117.27425061900,39.08077055640,0,117.27424761700,39.08101755210,0,117.27400226100,39.08141768530,0,117.27390036300,39.08195176730,0,117.27394061600,39.08231052840,0,117.27397561200,39.08280751990,0,117.27344262300,39.08283851730,0,117.27348261800,39.08350450580,0,117.27315662200,39.08399949600,0";
|
//var data="117.27203264700,39.08399749170,100,117.27205064000,39.08505047340,100,117.27191064300,39.08506047270,100,117.27190764200,39.08519647040,100,117.27056067100,39.08520046520,100,117.27038067600,39.08516046520,100,117.26913170300,39.08516146040,100,117.26883071100,39.08492046350,100,117.26879071200,39.08489046380,100,117.26831072500,39.08450046880,100,117.26823733600,39.08445096340,100,117.26752074400,39.08413047230,100,117.26678116600,39.08400387450,100,117.26628529500,39.08403456000,100,117.26559078700,39.08406046620,100,117.26448037300,39.08416323810,100,117.26300084200,39.08439045060,100,117.26244985200,39.08471644280,100,117.26213086000,39.08450044530,100,117.26187460300,39.08441590520,100,117.26143262700,39.08376448910,100,117.26135389000,39.08343363560,100,117.26144892900,39.08333475700,100,117.26136089100,39.08317631100,100,117.26117008300,39.08317673850,100,117.26112588900,39.08313298610,100,117.26121496400,39.08306214190,100,117.26109089400,39.08263047400,100,117.26096684300,39.08245841270,100,117.26087383900,39.08246214570,100,117.26056375300,39.08127532740,100,117.26033092300,39.08072050440,100,117.26033092300,39.08067050530,100,117.26038092200,39.08061050650,100,117.26014093000,39.08019051290,100,117.26026092800,39.08013051440,100,117.26008493400,39.07984651870,100,117.26031202800,39.07979954030,100,117.26031092900,39.07975052120,100,117.26027093100,39.07969052210,100,117.26019715200,39.07932553450,100,117.26040993100,39.07910853280,100,117.26252088500,39.07908054130,100,117.26328086900,39.07906054450,100,117.26666079600,39.07882056160,100,117.26710078700,39.07878056390,100,117.26837076000,39.07866057090,100,117.26995535900,39.07851339180,100,117.27115070200,39.07825058860,100,117.27228832200,39.07798008280,100,117.27244992500,39.07786292720,100,117.27437263600,39.07760061210,100,117.27418644900,39.07923437610,100,117.27423062200,39.08031056440,100,117.27424062000,39.08061055920,100,117.27425061900,39.08077055640,100,117.27424761700,39.08101755210,100,117.27400226100,39.08141768530,100,117.27390036300,39.08195176730,100,117.27394061600,39.08231052840,100,117.27397561200,39.08280751990,100,117.27344262300,39.08283851730,100,117.27348261800,39.08350450580,100,117.27315662200,39.08399949600,100";
|
|
var poiStrArr = data.split(",");
|
var poiArr = [];
|
$.each(poiStrArr, function (index, value) {
|
poiArr.push(Number(value));
|
});
|
addNettoMap(poiArr, "net");
|
|
}
|
var isLoadArea = false;
|
|
function loadboundary2(id) {
|
if (isLoadArea) {
|
removeAllEntities();
|
isLoadArea = false;
|
return;
|
}
|
|
var data = "116.39076592481405,39.913584611326485,46.531462546812534,116.39084095094661,39.90804862957625,47.7467262344139,116.40255134076679,39.90803117821826,48.51718798514972,116.40243556060928,39.91354936267734,47.88634387056292";
|
|
//var data="117.27203264700,39.08399749170,0,117.27205064000,39.08505047340,0,117.27191064300,39.08506047270,0,117.27190764200,39.08519647040,0,117.27056067100,39.08520046520,0,117.27038067600,39.08516046520,0,117.26913170300,39.08516146040,0,117.26883071100,39.08492046350,0,117.26879071200,39.08489046380,0,117.26831072500,39.08450046880,0,117.26823733600,39.08445096340,0,117.26752074400,39.08413047230,0,117.26678116600,39.08400387450,0,117.26628529500,39.08403456000,0,117.26559078700,39.08406046620,0,117.26448037300,39.08416323810,0,117.26300084200,39.08439045060,0,117.26244985200,39.08471644280,0,117.26213086000,39.08450044530,0,117.26187460300,39.08441590520,0,117.26143262700,39.08376448910,0,117.26135389000,39.08343363560,0,117.26144892900,39.08333475700,0,117.26136089100,39.08317631100,0,117.26117008300,39.08317673850,0,117.26112588900,39.08313298610,0,117.26121496400,39.08306214190,0,117.26109089400,39.08263047400,0,117.26096684300,39.08245841270,0,117.26087383900,39.08246214570,0,117.26056375300,39.08127532740,0,117.26033092300,39.08072050440,0,117.26033092300,39.08067050530,0,117.26038092200,39.08061050650,0,117.26014093000,39.08019051290,0,117.26026092800,39.08013051440,0,117.26008493400,39.07984651870,0,117.26031202800,39.07979954030,0,117.26031092900,39.07975052120,0,117.26027093100,39.07969052210,0,117.26019715200,39.07932553450,0,117.26040993100,39.07910853280,0,117.26252088500,39.07908054130,0,117.26328086900,39.07906054450,0,117.26666079600,39.07882056160,0,117.26710078700,39.07878056390,0,117.26837076000,39.07866057090,0,117.26995535900,39.07851339180,0,117.27115070200,39.07825058860,0,117.27228832200,39.07798008280,0,117.27244992500,39.07786292720,0,117.27437263600,39.07760061210,0,117.27418644900,39.07923437610,0,117.27423062200,39.08031056440,0,117.27424062000,39.08061055920,0,117.27425061900,39.08077055640,0,117.27424761700,39.08101755210,0,117.27400226100,39.08141768530,0,117.27390036300,39.08195176730,0,117.27394061600,39.08231052840,0,117.27397561200,39.08280751990,0,117.27344262300,39.08283851730,0,117.27348261800,39.08350450580,0,117.27315662200,39.08399949600,0";
|
//var data="117.27203264700,39.08399749170,100,117.27205064000,39.08505047340,100,117.27191064300,39.08506047270,100,117.27190764200,39.08519647040,100,117.27056067100,39.08520046520,100,117.27038067600,39.08516046520,100,117.26913170300,39.08516146040,100,117.26883071100,39.08492046350,100,117.26879071200,39.08489046380,100,117.26831072500,39.08450046880,100,117.26823733600,39.08445096340,100,117.26752074400,39.08413047230,100,117.26678116600,39.08400387450,100,117.26628529500,39.08403456000,100,117.26559078700,39.08406046620,100,117.26448037300,39.08416323810,100,117.26300084200,39.08439045060,100,117.26244985200,39.08471644280,100,117.26213086000,39.08450044530,100,117.26187460300,39.08441590520,100,117.26143262700,39.08376448910,100,117.26135389000,39.08343363560,100,117.26144892900,39.08333475700,100,117.26136089100,39.08317631100,100,117.26117008300,39.08317673850,100,117.26112588900,39.08313298610,100,117.26121496400,39.08306214190,100,117.26109089400,39.08263047400,100,117.26096684300,39.08245841270,100,117.26087383900,39.08246214570,100,117.26056375300,39.08127532740,100,117.26033092300,39.08072050440,100,117.26033092300,39.08067050530,100,117.26038092200,39.08061050650,100,117.26014093000,39.08019051290,100,117.26026092800,39.08013051440,100,117.26008493400,39.07984651870,100,117.26031202800,39.07979954030,100,117.26031092900,39.07975052120,100,117.26027093100,39.07969052210,100,117.26019715200,39.07932553450,100,117.26040993100,39.07910853280,100,117.26252088500,39.07908054130,100,117.26328086900,39.07906054450,100,117.26666079600,39.07882056160,100,117.26710078700,39.07878056390,100,117.26837076000,39.07866057090,100,117.26995535900,39.07851339180,100,117.27115070200,39.07825058860,100,117.27228832200,39.07798008280,100,117.27244992500,39.07786292720,100,117.27437263600,39.07760061210,100,117.27418644900,39.07923437610,100,117.27423062200,39.08031056440,100,117.27424062000,39.08061055920,100,117.27425061900,39.08077055640,100,117.27424761700,39.08101755210,100,117.27400226100,39.08141768530,100,117.27390036300,39.08195176730,100,117.27394061600,39.08231052840,100,117.27397561200,39.08280751990,100,117.27344262300,39.08283851730,100,117.27348261800,39.08350450580,100,117.27315662200,39.08399949600,100";
|
|
var poiStrArr = data.split(",");
|
var poiArr = [];
|
$.each(poiStrArr, function (index, value) {
|
poiArr.push(Number(value));
|
});
|
isLoadArea = true;
|
addNettoMap(poiArr, "net");
|
|
}
|
|
//根据坐标点画面
|
var netobjBoundary;
|
function addNettoMap(pois, type) {
|
removeAllEntities();
|
var cartesian3;
|
if (type == 'net') {
|
cartesian3 = Cesium.Cartesian3.fromDegreesArrayHeights(pois);
|
} else {
|
cartesian3 = Cesium.Cartesian3.fromDegreesArray(pois);
|
}
|
var tmpGeometryInstance = new Cesium.GeometryInstance({
|
geometry: new Cesium.PolygonGeometry({
|
polygonHierarchy: new Cesium.PolygonHierarchy(cartesian3),
|
extrudedHeight: 5000,
|
}),
|
attributes: {
|
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.ORANGE.withAlpha(0.6)),
|
}
|
});
|
var tmpClassificationPrimitive = new Cesium.ClassificationPrimitive({
|
geometryInstances: tmpGeometryInstance
|
});
|
viewer.scene.primitives.add(tmpClassificationPrimitive);
|
netobjBoundary = tmpClassificationPrimitive;
|
//求一个约等于的中间数
|
var firstLng = Number(pois[0]);
|
var firstLat = Number(pois[1]);
|
var middleLng = Number(pois[pois.length / 2]);
|
var middleLat = Number(pois[pois.length / 2 + 1])
|
var rLng = (firstLng + middleLng) / 2;
|
var rLat = (firstLat + middleLat) / 2;
|
console.log("firstLng=" + firstLng + "firstLat=" + firstLat + "middleLng=" + middleLng + "middleLat=" + middleLat);
|
|
viewer.camera.flyTo({
|
// destination : Cesium.Cartesian3.fromDegrees(rLng, rLat, Number(pois[2])+600)
|
destination: Cesium.Cartesian3.fromDegrees(rLng, rLat, Number(2000))
|
});
|
}
|
|
//清除地图中所有实体
|
function removeAllEntities() {
|
viewer.scene.primitives.remove(netobjBoundary);//去除网格
|
}
|
//查看项目详情
|
function viewProjectDetail(id) {
|
//跳转到div 详情
|
$("#veiwMoreProjectInfo").show();
|
|
}
|
//其他统计
|
function projstatistic() {
|
var param = 'access_token=' + access_token + '&proj_name=' + '北京森星医药耗材有限公司厂区场地调查项目';
|
var url = linkSysUrls + 'largescreen/project.html?' + escape(param);
|
window.open(url, "_blank")
|
}
|
//统计2
|
function projstatistic2(name) {
|
var param = 'access_token=' + access_token + '&proj_name=' + name;
|
var url = linkSysUrls + 'largescreen/project.html?' + escape(param);
|
window.open(url, "_blank")
|
}
|
|
|
|
var pm25Array = [
|
{ "id": 1, "name": "传感器A", "longitude": 116.3924, "latitude": 39.9125 },
|
{ "id": 2, "name": "传感器B", "longitude": 116.3993, "latitude": 39.9123 },
|
{ "id": 3, "name": "传感器C", "longitude": 116.3925, "latitude": 39.9099 },
|
{ "id": 4, "name": "传感器D", "longitude": 116.3941, "latitude": 39.9098 },
|
{ "id": 5, "name": "传感器E", "longitude": 116.4005, "latitude": 39.9096 },
|
{ "id": 6, "name": "传感器F", "longitude": 116.3960, "latitude": 39.9087 }
|
];
|
//地图上展示 PM2.5 传感器位置
|
function pm25OnMap() {
|
|
//关闭当前窗体
|
// ctrlPollutions();
|
// //关闭项目面板
|
// ctrlProjectDetails();
|
|
|
for (var i = 0; i < pm25Array.length; i++) {
|
|
viewer.entities.add({
|
id: "pm25_" + pm25Array[i].id,
|
name: pm25Array[i].name,
|
position: Cesium.Cartesian3.fromDegrees(pm25Array[i].longitude, pm25Array[i].latitude),
|
point: {
|
pixelSize: 12,
|
color: Cesium.Color.YELLOW,
|
outlineColor: Cesium.Color.WHITE,
|
outlineWidth: 3,
|
outline: true,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND
|
},
|
label: {
|
show: true,
|
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
font: 'bold 14px Helvetica',
|
fillColor: Cesium.Color.WHITE,
|
text: pm25Array[i].name,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND
|
}
|
});
|
|
}
|
viewer.camera.flyTo({
|
destination: Cesium.Cartesian3.fromDegrees(Number(pm25Array[0].longitude),
|
Number(pm25Array[0].latitude), 3000)
|
});
|
}
|
|
|
//统计模式
|
function statisticPattern() {
|
$("#model-tree").hide();
|
$("#model-entity").hide();
|
$("#model-tree-timeline").hide();
|
|
$("#model-icons").hide();
|
$(".drsElement").show();
|
}
|
|
//场地模式
|
function worksitePattern() {
|
if (currentProjectId == null) {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("还未在任何项目中");
|
});
|
|
return;
|
}
|
$("#worksite-tools").show();
|
|
$(".drsElement").hide();
|
$("#model-tree-timeline").hide();
|
|
//项目树
|
modelTreeList(currentProjectId);
|
//图例
|
projectIcons(currentProjectId);
|
}
|
|
//关闭工具条
|
function closeTools() {
|
$("#worksite-tools").hide();
|
}
|
|
//复制链接
|
function shareLink() {
|
var url = window.location.href;
|
var clipboard = new Clipboard('#copyi', {
|
text: function () {
|
return url;
|
}
|
});
|
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("已复制分享到剪切板");
|
});
|
|
}
|
//采样点
|
function samplePoint() {
|
if (currentProjectId == null || currentProjectId == undefined || projectId == "") {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("当前不在项目模型下,无法查看采样点");
|
});
|
return;
|
}
|
|
$.ajax({
|
type: "post",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/survey/getPointByProject?project_id=" + currentProjectId,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
|
if (data == null || data.length <= 0) {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("本项目暂无采样点");
|
});
|
}
|
addSampleIcons(data);
|
|
},
|
error: function () {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("网络故障");
|
});
|
}
|
});
|
}
|
|
|
//地图上添加采样点
|
function addSampleIcons(data) {
|
|
for (var i = 0; i < data.length; i++) {
|
var type = data[i].type;
|
var color;
|
//初步调查 0 详细调查 1
|
if (type == "0") {
|
color = Cesium.Color.BLUE;
|
} else {
|
color = Cesium.Color.RED;
|
}
|
|
var entity = viewer.entities.getById("sample_" + data[i].id);
|
if (entity == undefined) {//如果不存在则添加
|
|
viewer.entities.add({
|
id: "sample_" + data[i].id,
|
name: data[i].sample_name,
|
position: Cesium.Cartesian3.fromDegrees(data[i].longitude, data[i].latitude),
|
point: {
|
pixelSize: 12,
|
color: color,
|
outlineColor: Cesium.Color.WHITE,
|
outlineWidth: 3,
|
outline: true,
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND
|
},
|
label: {
|
show: true,
|
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
|
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
|
font: 'bold 14px Helvetica',
|
fillColor: Cesium.Color.WHITE,
|
text: "",
|
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND
|
}
|
});
|
}
|
}
|
}
|
|
//查看采样点详情
|
function getSampleById(id) {
|
|
$.ajax({
|
type: "post",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/survey/getPointByProjectAndId?id=" + id,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
|
var entity = data;
|
|
if (entity == null) {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("数据异常");
|
});
|
}
|
var content = "";
|
content += "编号 :" + entity.sample_no + "<br>"
|
+ "名称 :" + entity.sample_name + "<br>"
|
+ "调查类型 :" + entity.type_name + "<br>"
|
+ "采样日期 :" + entity.sample_date + "<br>"
|
+ "样品数量 :" + entity.sample_num + "<br>"
|
+ "状态 :" + entity.state_name + "<br>"
|
+ "是否已经送检 :" + entity.submit_flag_name + "<br>"
|
+ "送检编号 :" + entity.test_no + "<br>"
|
+ "检测指标 :" + entity.test_type + "<br>";
|
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
|
layer.msg(content, { time: 10000 });
|
});
|
|
|
},
|
error: function () {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("网络故障");
|
});
|
}
|
});
|
}
|
|
|
|
|
//项目组成员
|
function userGroup() {
|
|
if (currentProjectId == null || currentProjectId == undefined || projectId == "") {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("当前不在项目模型下,无法查看采样点");
|
});
|
return;
|
}
|
|
var url = httpConfig.webApiUrl;
|
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.open({
|
type: 2,
|
title: "项目组员",
|
maxmin: true,
|
shade: 0,
|
maxmin: false,
|
scrollbar: false,
|
offset: 'rb',
|
shadeClose: false, //点击遮罩关闭层
|
area: ['350px', '600px'],
|
resize: false,
|
content: 'project/users.html',
|
success: function (layero, index) {
|
var iframe = window['layui-layer-iframe' + index];//拿到iframe元素
|
iframe.child(currentProjectId, url)//向此iframe层方法 传递参数
|
}
|
});
|
});
|
}
|
|
//视频监控点
|
function videoPoint() {
|
if (currentProjectId == null || currentProjectId == undefined || projectId == "") {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("当前不在项目模型下,无法查看采样点");
|
});
|
return;
|
}
|
$.ajax({
|
type: "post",
|
async: false,
|
url: httpConfig.webApiUrl + "v1/env/webgis/cameraList?project_id=" + currentProjectId,
|
contentType: "application/json;charset=utf-8",
|
success: function (data) {
|
addCamera(data);
|
},
|
error: function () {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("网络故障");
|
});
|
}
|
});
|
}
|
|
|
//添加监控点
|
function addCamera(data) {
|
var geojson = {
|
"type": "FeatureCollection",
|
"features": []
|
};
|
for (var i = 0; i < data.length; i++) {
|
var lng = data[i].lng;
|
var lat = data[i].lat;
|
var id = "camera_" + data[i].id;
|
var name = data[i].name;
|
|
if (lng == null || lat == null) {
|
continue;
|
}
|
|
var feature = {
|
"type": "Feature",
|
"geometry": {
|
"type": "Point",
|
"coordinates": [lng, lat, 1]
|
},
|
"id": id,
|
"name": name,
|
"properties": {
|
"title": "marker",
|
"marker-symbol": "camera",
|
"marker-color": "#8A2BE2"
|
}
|
};
|
geojson.features.push(feature);
|
|
}
|
var promise = Cesium.GeoJsonDataSource.load(geojson, { "markerSize": 40 });
|
var dataSourcePromise = viewer.dataSources.add(promise);
|
|
}
|
|
//播放视频
|
function playVideo(id) {
|
|
var loadstr = '<video width="100%" height="100%" controls="controls" autobuffer="autobuffer" autoplay="autoplay" loop="loop"><source src="../assets/video/v2.mp4" type="video/mp4"></source></video>'
|
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.open({
|
type: 1,
|
title: false,
|
area: ['630px', '360px'],
|
// shade: 0.8,
|
closeBtn: 0,
|
shadeClose: true,
|
content: loadstr
|
//content: '//player.youku.com/embed/XMzI1NjQyMzkwNA=='
|
//cotent:'https://haokan.baidu.com/v?vid=5125867043400442775&pd=bjh&fr=bjhauthor&type=video'
|
});
|
});
|
|
}
|
|
//清除图层
|
function clearLayer() {
|
//移除点
|
var entitys = viewer.entities._entities._array;
|
for (var i = 0; i < entitys.length; i++) {
|
if (entitys[i]._id.indexOf("sample_") != -1) {
|
viewer.entities.remove(entitys[i]);
|
i--;
|
}
|
}
|
viewer.dataSources.removeAll(true);
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("已经清除采样点图层");
|
});
|
|
}
|
//
|
var isSurfaceTransparent = false;
|
//地表透明
|
function surfaceTransparent() {
|
if (isSurfaceTransparent == false) {
|
isSurfaceTransparent = true;
|
viewer.imageryLayers._layers.forEach(layer => {
|
layer.alpha = 0.6; // 我们可以设置为0
|
});
|
viewer.scene.globe.baseColor = new Cesium.Color(0, 0, 0, 0);
|
viewer.scene.globe.depthTestAgainstTerrain = !0;
|
viewer.scene.highDynamicRange = !1;
|
viewer.scene.skyAtmosphere.show = !1;
|
viewer.scene.skyBox.show = !1;
|
} else {
|
isSurfaceTransparent = false;
|
viewer.imageryLayers._layers.forEach(layer => {
|
layer.alpha = 1.0; // 我们可以设置为0
|
});
|
viewer.scene.globe.baseColor = new Cesium.Color(0, 0, 0, 0);
|
viewer.scene.globe.depthTestAgainstTerrain = 0;
|
viewer.scene.highDynamicRange = 1;
|
viewer.scene.skyAtmosphere.show = 1;
|
viewer.scene.skyBox.show = 1;
|
}
|
}
|
|
//场地演进
|
function worksiteTimeline() {
|
|
if (currentProjectId == null || currentProjectId == undefined || currentProjectId == "") {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("当前不在项目模型下,无法查看场地演进");
|
});
|
return;
|
}
|
|
$(".drsElement").hide();
|
$("#model-tree").hide();
|
$("#model-entity").hide();
|
$("#model-icons").hide();
|
|
|
$("#model-tree-timeline").show();
|
$.ajax({
|
type: 'GET',
|
dataType: 'json',
|
async: false,
|
url: httpConfig.webApiUrl + 'v1/env/projectModel/worksiteTimeLine?projectId=' + currentProjectId,
|
contentType: 'application/x-www-form-urlencoded',
|
success(data) {
|
var childs = new Array();
|
|
if (data != null) {
|
data.forEach(element => {
|
console.log(element);
|
childs = childs.concat(element.children);
|
});
|
}
|
|
layui.use(['element', 'layer', 'form', 'upload', 'tree', 'util'], function () {
|
var element = layui.element;
|
var form = layui.form;
|
var $ = layui.jquery, upload = layui.upload;
|
var tree = layui.tree, util = layui.util, layer = layui.layer;
|
console.log(data);
|
|
tree.render({
|
elem: '#model-tree-list-timeline'
|
, data: data
|
, showCheckbox: false //是否显示复选框
|
, id: 'model-tree-list-timeline'
|
, isJump: false //是否允许点击节点时弹出新窗口跳转
|
, click: function (obj) {
|
|
}
|
, oncheck: function () {
|
|
}
|
});
|
|
$(document).on('click', '#modelTreeTimeLineBtn', function (data) {
|
//清空模型
|
childs.forEach(element => {
|
var id = element.id;
|
var model = getprimitiveModel(id);
|
model.show = false;
|
});
|
|
|
new Promise(function executor(resolve) {
|
set(childs);
|
}).then(function () {
|
console.log(currentLng);
|
flyExtent(currentLng, currentLat - 0.01, 500);
|
})
|
|
|
});
|
|
function set(childs) {
|
|
for (var i = 0; i < childs.length; i++) {
|
|
(function (j) {
|
setTimeout(function () {
|
var id = childs[j].id;
|
var lng = childs[j].lng;
|
var lat = childs[j].lat;
|
var model = getprimitiveModel(id);
|
model.show = true;
|
viewer.camera.setView({
|
destination: Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat - 0.005), Number(100)),
|
orientation: {
|
heading: viewer.camera.heading,
|
pitch: Cesium.Math.toRadians(-12),
|
}
|
});
|
|
}, 3000 * j)
|
})(i);
|
}
|
|
}
|
|
|
});
|
},
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
console.log("网络请求失败!");
|
}
|
});
|
|
}
|
|
//检测点
|
function MonitorPoint() {
|
|
if (currentProjectId == null || currentProjectId == undefined || projectId == "") {
|
layui.use('layer', function () {
|
var layer = layui.layer;
|
layer.msg("当前不在项目模型下,无法查看监测点");
|
});
|
return;
|
}
|
var data=[
|
{"id":1,"name":"监测点A","lng":117.2672,"lat":39.0838},
|
{"id":1,"name":"监测点A","lng":117.2632,"lat":39.08},
|
{"id":1,"name":"监测点A","lng":117.2672,"lat":39.0888},
|
]
|
addMtionPoint(data);
|
}
|
|
|
//添加监控点
|
function addMtionPoint(data) {
|
var geojson = {
|
"type": "FeatureCollection",
|
"features": []
|
};
|
for (var i = 0; i < data.length; i++) {
|
var lng = data[i].lng;
|
var lat = data[i].lat;
|
var id = "motion_" + data[i].id;
|
var name = data[i].name;
|
|
if (lng == null || lat == null) {
|
continue;
|
}
|
|
var feature = {
|
"type": "Feature",
|
"geometry": {
|
"type": "Point",
|
"coordinates": [lng, lat, 1]
|
},
|
"id": id,
|
"name": name,
|
"properties": {
|
"title": "marker",
|
"marker-symbol": "water",
|
"marker-color": "#e69966"
|
}
|
};
|
geojson.features.push(feature);
|
|
}
|
var promise = Cesium.GeoJsonDataSource.load(geojson, { "markerSize": 40 });
|
var dataSourcePromise = viewer.dataSources.add(promise);
|
|
}
|
//展示点
|
function showMotionPoint(id){
|
|
var layer = layui.layer;
|
layer.open({
|
type: 2,
|
title: "监测点",
|
maxmin: true,
|
shade: 0,
|
maxmin: false,
|
scrollbar: false,
|
offset: 'rb',
|
shadeClose: false, //点击遮罩关闭层
|
area: ['600px', '350px'],
|
resize: false,
|
content: 'smelldata/smellChart.html',
|
success: function (layero, index) {
|
//var iframe = window['layui-layer-iframe' + index];//拿到iframe元素
|
//iframe.child(currentProjectId, url)//向此iframe层方法 传递参数
|
}
|
});
|
|
}
|