You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
303 lines
12 KiB
303 lines
12 KiB
|
|
var _interfaceDocUrl="http://xzcamp.xfzn365.com/",//其他接口
|
|
_interfaceMhUrl="",//摄像头
|
|
_interfaceImgUrl = "",//图片前缀
|
|
_interfaceDjUrl = "/political";//党建接口
|
|
|
|
|
|
var _orgId = "";
|
|
var _pId = "";
|
|
var _layer;
|
|
var _cesium,_viewer;
|
|
var _ScreenSpaceEventHandler;//屏幕空间事件处理程序
|
|
var _promise = "";
|
|
var _flyManager = null;
|
|
var _flyInitialPerspective;
|
|
/**
|
|
* 初始化 supermap
|
|
*/
|
|
function onload(Cesium) {
|
|
_cesium = Cesium;
|
|
_viewer = new Cesium.Viewer('earth', { navigation: true });
|
|
var widget = _viewer.cesiumWidget;
|
|
try {
|
|
_viewer.imageryLayers.addImageryProvider(new Cesium.TiandituImageryProvider({
|
|
token: URL_CONFIG.TOKEN_TIANDITU
|
|
}));
|
|
var imageryLayers = _viewer.imageryLayers;
|
|
//初始化天地图全球中文注记服务,并添加至影像图层
|
|
var labelImagery = new Cesium.TiandituImageryProvider({
|
|
mapStyle : Cesium.TiandituMapsStyle.CIA_C, //天地图全球中文注记服务(经纬度投影)
|
|
token: URL_CONFIG.TOKEN_TIANDITU
|
|
});
|
|
imageryLayers.addImageryProvider(labelImagery);
|
|
_viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
|
|
_ScreenSpaceEventHandler = new this._cesium.ScreenSpaceEventHandler(this._viewer.scene.canvas);
|
|
_myDataCustomDataSource = new this._cesium.CustomDataSource('myData');
|
|
_viewer.dataSources.add(_myDataCustomDataSource);
|
|
|
|
initTileset();
|
|
} catch (e) {
|
|
if (widget._showRenderLoopErrors) {
|
|
var title = '渲染时发生错误,已停止渲染。';
|
|
widget.showErrorPanel(title, undefined, e);
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* 初始化layui
|
|
*/
|
|
layui.use(['layer','table','laydate','form'], function () {
|
|
_layer = layui.layer,
|
|
_layuiTable = layui.table,
|
|
_laydate = layui.laydate,
|
|
_layuiForm = layui.form;
|
|
initWorkData();
|
|
|
|
_layuiForm.on('select(modelSwitch)', function (data) {
|
|
console.log(data.value);
|
|
if (data.value != null && data.value != "") {
|
|
if (_orgId != data.value) {
|
|
_orgId = data.value;
|
|
initWork(_use_page);
|
|
initTileset2();
|
|
}
|
|
}
|
|
})
|
|
});
|
|
|
|
|
|
/**
|
|
* 初始化数据
|
|
*/
|
|
var initWorkData = function() {
|
|
// var kn_root_c_cookie = $.cookie("kn_root_cookie");
|
|
var kn_root_c_cookie = '{"usersUid":"xzadmin","usersName":"西藏数据管理员","IsAdmin":"1","cityId":"540000","orgId":"D8DC637B8B984848A63F82A018AFAEB0","orgName":"西藏自治区消防救援总队","deptId":"","deptName":"","pid":"1","userMobile":"13800138001","userSex":"男","userNation":"","userFace":"","userCert":"","userProf":"","userPhoto":"","roles":"48599f7df67d4eb491949039dc6b26f7"}';
|
|
var kn_root_c_cookie_json;
|
|
if(typeof kn_root_c_cookie == 'string'){
|
|
kn_root_c_cookie_json = JSON.parse(kn_root_c_cookie);
|
|
console.log(kn_root_c_cookie_json);
|
|
_orgId = kn_root_c_cookie_json.orgId;
|
|
_pId = kn_root_c_cookie_json.pid;
|
|
$("#topHead").load("topHead.html");
|
|
initWork("home");
|
|
initCampList(_orgId);
|
|
startMqttServer();
|
|
}else{
|
|
_layer.msg("您未登录或登录超时请登录后使用,页面将在3秒后关闭!",{ icon: 0 });
|
|
setTimeout(function(){window.close();},3000);
|
|
}
|
|
}
|
|
|
|
var initCampList = function (orgId) {
|
|
var oldOrgId = orgId;
|
|
switch(orgId){
|
|
case "734389c7ae364584aea9918693bba3de": //西藏自治区消防总队机关
|
|
case "0055c83cf8194051888061fb27971578": //拉萨市消防救援支队机关
|
|
case "0cf00efb5e5f4f668b86e08aff0ea3c4": //山南市消防救援支队机关
|
|
case "1cc32e7245694343b1e5ff41014eee74": //林芝市消防救援支队机关
|
|
case "2a0e0a66602145cfb456b98d92776977": //那曲市消防救援支队机关
|
|
case "335ef5c069954872a50d012b4676393a": //昌都市消防救援支队机关
|
|
case "a3a158f3ed6a463d92ef65aa58c67bfa": //日喀则市消防救援支队机关
|
|
case "ba4e41e82ddd4d819703f0a57f088d4e": //阿里地区消防救援支队机关
|
|
if(_pId){
|
|
orgId = _pId;
|
|
}
|
|
}
|
|
$.ajax({
|
|
type: "post",
|
|
url: _interfaceDocUrl + "/ashx/GisBaseHandler.ashx",
|
|
data: { Action: "getCampListByOrgId", OrgId: orgId },
|
|
dataType: "json",
|
|
success: function (res) {
|
|
console.log(res);
|
|
var campStr = "";
|
|
res.data.forEach(function (obj, index, arr) {
|
|
campStr += "<option value=\"" + obj.ORG_ID + "\">" + obj.NAME + "</option>";
|
|
});
|
|
campStr += "<option value=\"bdlg\">布达拉宫</option>";
|
|
$("#campList").append(campStr);
|
|
console.log(_layuiForm);
|
|
_layuiForm.render('select');
|
|
|
|
if (oldOrgId == "D8DC637B8B984848A63F82A018AFAEB0") {
|
|
$('#campList').find("option[value=734389c7ae364584aea9918693bba3de]").attr("selected", true);
|
|
_orgId = "734389c7ae364584aea9918693bba3de";
|
|
_layuiForm.render('select');
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
var initWork = function (type){
|
|
if(type == "home"){
|
|
$("#earth").hide();
|
|
$(".dtzn").hide()
|
|
}else{
|
|
if(_flyManager != null){
|
|
_flyManager && _flyManager.stop();
|
|
}
|
|
$("#earth").show();
|
|
$(".dtzn").show();
|
|
}
|
|
// $("#earth").hide();
|
|
$('#bodyDiv').load("subitem/"+type+".html");
|
|
}
|
|
|
|
var getOrgId = function(){
|
|
// var kn_root_c_cookie = $.cookie("kn_root_cookie");
|
|
var kn_root_c_cookie = '{"usersUid":"xzadmin","usersName":"西藏数据管理员","IsAdmin":"1","cityId":"540000","orgId":"D8DC637B8B984848A63F82A018AFAEB0","orgName":"西藏自治区消防救援总队","deptId":"","deptName":"","pid":"1","userMobile":"13800138001","userSex":"男","userNation":"","userFace":"","userCert":"","userProf":"","userPhoto":"","roles":"48599f7df67d4eb491949039dc6b26f7"}';
|
|
var kn_root_c_cookie_json;
|
|
if(typeof kn_root_c_cookie == 'string'){
|
|
kn_root_c_cookie_json = JSON.parse(kn_root_c_cookie);
|
|
_orgId = kn_root_c_cookie_json.orgId;
|
|
_pId = kn_root_c_cookie_json.pid;
|
|
initTileset();
|
|
}else{
|
|
_layer.msg("您未登录或登录超时请登录后使用,页面将在3秒后关闭!",{ icon: 0 });
|
|
setTimeout(function(){window.close();},3000);
|
|
}
|
|
}
|
|
|
|
|
|
var initTileset = function () {
|
|
if(_orgId == ""){
|
|
getOrgId();
|
|
}else{
|
|
if(_promise == ""){
|
|
$.post(_interfaceDocUrl + "/ashx/GisBaseHandler.ashx", {
|
|
Action: "getOrgIdGisBase",
|
|
OrgId: _orgId
|
|
}, function (result) {
|
|
console.log(result);
|
|
var flag = false;
|
|
try {
|
|
if (typeof $.parseJSON(result) == "object") {
|
|
flag = true;
|
|
}
|
|
} catch(e) {
|
|
|
|
}
|
|
if(flag){
|
|
var res = $.parseJSON(result);
|
|
var data = res.GisBaseData;
|
|
if(data.length > 0){
|
|
_promise = _viewer.scene.open(data[0].IP);
|
|
_cesium.when(_promise,function(layers){
|
|
this.camera_setView(111.07064606657534, 36.2530620465765, 7278054.991043228, 0, -90, 0.0);
|
|
setTimeout(function () {
|
|
this.camera_flyTo(data[0].FLY_LON1, data[0].FLY_LAT1, data[0].FLY_HEI1, data[0].FLY_HEAD1, data[0].FLY_PITCH1, data[0].FLY_ROLL1, 4);
|
|
}, 3000);
|
|
setTimeout(function () {
|
|
this.camera_flyTo(data[0].FLY_LON2, data[0].FLY_LAT2, data[0].FLY_HEI2, data[0].FLY_HEAD2, data[0].FLY_PITCH2, data[0].FLY_ROLL2, 1);
|
|
_flyInitialPerspective={
|
|
"lon":data[0].FLY_LON2,
|
|
"lat":data[0].FLY_LAT2,
|
|
"hei":data[0].FLY_HEI2,
|
|
"head":data[0].FLY_HEAD2,
|
|
"pitch":data[0].FLY_PITCH2,
|
|
"roll":data[0].FLY_ROLL2
|
|
}
|
|
}, 7200);
|
|
});
|
|
}else{
|
|
$.ajax({
|
|
type: "post",
|
|
url: _interfaceDocUrl + "/ashx/FireOrgHandler.ashx",
|
|
data: { Action: "getFireOrgName", ID: _orgId },
|
|
dataType: "json",
|
|
success: function (result) {
|
|
if(result.data.LON!=null&&result.data.LON!=""&&result.data.LAT!=null&&result.data.LAT!=""){
|
|
var lon = Number(result.data.LON);
|
|
var lat = Number(result.data.LAT);
|
|
var point = gcj02towgs84(lon, lat);
|
|
camera_flyTo(point[0], point[1], 8000, 0,-90,0, 3);
|
|
}else{
|
|
_layer.msg(result.data.ORG_NAME+"营区未维护坐标点信息");
|
|
}
|
|
}
|
|
})
|
|
_layer.msg("当前营区无三维模型");
|
|
}
|
|
}else{
|
|
$.ajax({
|
|
type: "post",
|
|
url: _interfaceDocUrl + "/ashx/FireOrgHandler.ashx",
|
|
data: { Action: "getFireOrgName", ID: _orgId },
|
|
dataType: "json",
|
|
success: function (result) {
|
|
//console.log(result);
|
|
if(result.data.LON!=null&&result.data.LON!=""&&result.data.LAT!=null&&result.data.LAT!=""){
|
|
var lon = Number(result.data.LON);
|
|
var lat = Number(result.data.LAT);
|
|
var point = gcj02towgs84(lon, lat);
|
|
camera_flyTo(point[0], point[1], 8000, 0, -90, 0, 3);
|
|
}else{
|
|
_layer.msg(result.data.ORG_NAME+"营区未维护坐标点信息");
|
|
}
|
|
}
|
|
})
|
|
_layer.msg("当前营区无三维模型");
|
|
}
|
|
});
|
|
}else{
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
function getCamera(){
|
|
var camera = _viewer.camera;//获取当前相机对象
|
|
if(camera != null){
|
|
var cartographic=_viewer.scene.globe.ellipsoid.cartesianToCartographic(camera.position);
|
|
var lng=_cesium.Math.toDegrees(cartographic.longitude);
|
|
var lat=_cesium.Math.toDegrees(cartographic.latitude);
|
|
var alt=cartographic.height;
|
|
//console.log(lng+","+lat+","+alt);//输出x,y,z(经纬度)
|
|
|
|
var heading = _cesium.Math.toDegrees(camera.heading);
|
|
var pitch = _cesium.Math.toDegrees(camera.pitch);
|
|
var roll = _cesium.Math.toDegrees(camera.roll);
|
|
//console.log(heading+","+pitch+","+roll);//输出方向(度数)
|
|
}
|
|
}
|
|
|
|
if (typeof Cesium !== 'undefined') {
|
|
window.startupCalled = true;
|
|
setTimeout(onload(Cesium), 3000);
|
|
}
|
|
|
|
var initTileset2 = function () {
|
|
$.post(_interfaceDocUrl + "/ashx/GisBaseHandler.ashx", {
|
|
Action: "getOrgIdGisBase",
|
|
OrgId: _orgId
|
|
}, function (result) {
|
|
var res = $.parseJSON(result);
|
|
var data = res.GisBaseData;
|
|
if(data.length > 0){
|
|
_promise = _viewer.scene.open(data[0].IP);
|
|
camera_flyTo(data[0].FLY_LON1, data[0].FLY_LAT1, data[0].FLY_HEI1, data[0].FLY_HEAD1, data[0].FLY_PITCH1, data[0].FLY_ROLL1, 0.1);
|
|
setTimeout(function () {
|
|
camera_flyTo(data[0].FLY_LON2, data[0].FLY_LAT2, data[0].FLY_HEI2, data[0].FLY_HEAD2, data[0].FLY_PITCH2, data[0].FLY_ROLL2, 1);
|
|
},1300)
|
|
}else{
|
|
$.ajax({
|
|
type: "post",
|
|
url: _interfaceDocUrl + "/ashx/FireOrgHandler.ashx",
|
|
data: { Action: "getFireOrgName", ID: _orgId },
|
|
dataType: "json",
|
|
success: function (result) {
|
|
if(result.data.LON!=null&&result.data.LON!=""&&result.data.LAT!=null&&result.data.LAT!=""){
|
|
var lon = Number(result.data.LON);
|
|
var lat = Number(result.data.LAT);
|
|
var point = gcj02towgs84(lon, lat);
|
|
camera_flyTo(point[0], point[1], 8000, 0,-90,0, 3);
|
|
}else{
|
|
_layer.msg(result.data.ORG_NAME+"营区未维护坐标点信息");
|
|
}
|
|
}
|
|
})
|
|
_layer.msg("当前营区无三维模型");
|
|
}
|
|
});
|
|
}
|