Lin_Ye_Fang_Huo/public/widgets/analysis/view.js

479 lines
13 KiB
JavaScript
Raw Normal View History

2023-07-18 09:04:15 +08:00
"use script"; //开发环境建议开启严格模式
2023-07-08 15:37:34 +08:00
//对应widget.js中MyWidget实例化后的对象
2023-07-18 09:04:15 +08:00
var thisWidget;
2023-07-08 15:37:34 +08:00
//当前页面业务
function initWidgetView(_thisWidget) {
2023-07-18 09:04:15 +08:00
thisWidget = _thisWidget;
2023-07-08 15:37:34 +08:00
//点击显示子页面
2023-07-18 09:04:15 +08:00
$(".tool-btn").click(function () {
$(this).parents(".basicbox").hide();
$(".mainbox").eq($(this).index()).show().siblings(".mainbox").hide();
});
2023-07-08 15:37:34 +08:00
//返回主菜单
2023-07-18 09:04:15 +08:00
$(".backmenu").click(function () {
$(this).parents(".mainbox").hide();
$(".basicbox").show();
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
thisWidget.destroyAll();
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
initRZFX(); //日照分析
initPDPX(); //坡度坡向
initKSY(); //可视域分析
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
initFLFX(); //方量分析
initDXKW(); //地形开挖
initDBTM(); //地表透明
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
initMXPQ(); //模型剖切
initMXYP(); //模型压平
initMXCJ(); //模型裁剪
2023-07-08 15:37:34 +08:00
}
//=============日照分析=============
function initRZFX() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_rzfx").click(function () {
thisWidget.createRZFX();
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#btn_rzfx_destory").click(function () {
thisWidget.destroyRZFX();
});
2023-07-08 15:37:34 +08:00
// $('#btn_rzfx_clear').click(function () {
// thisWidget.shadows.clear()
// });
2023-07-18 09:04:15 +08:00
jeDate("#txt_rzfx_Date", {
theme: { bgcolor: "#135b91", pnColor: "#00CCFF" },
format: "YYYY-MM-DD",
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
var today = new Date().format("yyyy-MM-dd");
$("#txt_rzfx_Date").val(today);
2023-07-08 15:37:34 +08:00
//滑动条
2023-07-18 09:04:15 +08:00
$("#range_ksy_currTime").range({
2023-07-08 15:37:34 +08:00
onChange: function (value, bfb) {
2023-07-18 09:04:15 +08:00
var dateTime = getCurrTime();
thisWidget.shadows.time = dateTime;
$("#btn_rzfx_btn_rzfx_pause").val("播放");
2023-07-08 15:37:34 +08:00
},
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#btn_rzfx_btn_rzfx_pause").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.shadows.isStart) {
2023-07-18 09:04:15 +08:00
thisWidget.shadows.pause();
$("#btn_rzfx_btn_rzfx_pause").val("播放");
2023-07-08 15:37:34 +08:00
} else {
2023-07-18 09:04:15 +08:00
var _date = $("#txt_rzfx_Date").val();
var currentTime = getCurrTime();
var startDate = new Date(_date + " 00:00:00");
var endDate = new Date(_date + " 23:59:59");
if (currentTime >= endDate) {
haoutil.msg("开始时间必须小于结束时间!");
return;
}
thisWidget.shadows.start(startDate, endDate, currentTime);
$("#btn_rzfx_btn_rzfx_pause").val("暂停");
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
}
function getCurrTime() {
2023-07-18 09:04:15 +08:00
var value = Number($("#range_ksy_currTime").val());
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
var date = $("#txt_rzfx_Date").val();
var hours = Number.parseInt(value / 60);
var minutes = Number.parseInt(value % 60);
var strDateTime = `${date} ${hours}:${minutes}:00`;
var dateTime = new Date(strDateTime);
$("#lbl_rzfx_nowTime").html(dateTime.format("MM月dd日 HH:mm"));
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
return dateTime;
2023-07-08 15:37:34 +08:00
}
function setRZFXNowTime(date) {
2023-07-18 09:04:15 +08:00
var currTime = date.getHours() * 60 + date.getMinutes();
$("#range_ksy_currTime").val(currTime).change();
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#lbl_rzfx_nowTime").html(date.format("MM月dd日 HH:mm"));
2023-07-08 15:37:34 +08:00
}
//=============坡度坡向=============
function initPDPX() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_pdpx").click(function () {
thisWidget.createPDPX();
});
$("#btn_pdpx_destory").click(function () {
thisWidget.destroyPDPX();
});
$("#btn_pdpx_clear").click(function () {
thisWidget.clearPDPX();
});
$("#btn_pdpx_drawPoly").click(function () {
var splitNum = Number($("#txt_pdpx_SplitNum").val());
thisWidget.drawPDPXPoly(splitNum);
});
$("#btn_pdpx_drawExtent").click(function () {
var splitNum = Number($("#txt_pdpx_SplitNum").val());
thisWidget.drawPDPXExtent(splitNum);
});
$("input[type=radio][name=shadingMaterials]").change(function () {
if (thisWidget.contourLine) {
thisWidget.contourLine.shadingType = this.value;
}
});
2023-07-08 15:37:34 +08:00
}
//=============可视域分析=============
function initKSY() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_ksy").click(function () {
thisWidget.createKSY();
});
$("#btn_ksy_destory").click(function () {
thisWidget.destroyKSY();
});
$("#btn_ksy_clear").click(function () {
thisWidget.clearKSY();
updateKsyDistance(100);
});
2023-07-08 15:37:34 +08:00
//滑动条
2023-07-18 09:04:15 +08:00
$("#range_ksy_horizontalAngle").range({
2023-07-08 15:37:34 +08:00
onChange: function (value, bfb) {
2023-07-18 09:04:15 +08:00
$("#txt_ksy_horizontalAngle").val(value);
thisWidget.getLastKSY().horizontalAngle = value;
2023-07-08 15:37:34 +08:00
},
2023-07-18 09:04:15 +08:00
});
$("#txt_ksy_horizontalAngle").change(function () {
var value = Number($(this).val());
$("#range_ksy_horizontalAngle").val(value).change();
thisWidget.getLastKSY().horizontalAngle = value;
});
$("#range_ksy_verticalAngle").range({
2023-07-08 15:37:34 +08:00
onChange: function (value, bfb) {
2023-07-18 09:04:15 +08:00
$("#txt_ksy_verticalAngle").val(value);
thisWidget.getLastKSY().verticalAngle = value;
2023-07-08 15:37:34 +08:00
},
2023-07-18 09:04:15 +08:00
});
$("#txt_ksy_verticalAngle").change(function () {
var value = Number($(this).val());
$("#range_ksy_verticalAngle").val(value).change();
thisWidget.getLastKSY().verticalAngle = value;
});
$("#range_ksy_distance").range({
2023-07-08 15:37:34 +08:00
onChange: function (value, bfb) {
2023-07-18 09:04:15 +08:00
$("#txt_ksy_distance").val(value);
thisWidget.getLastKSY().distance = value;
2023-07-08 15:37:34 +08:00
},
2023-07-18 09:04:15 +08:00
});
$("#txt_ksy_distance").change(function () {
var value = Number($(this).val());
$("#range_ksy_distance").val(value).change();
thisWidget.getLastKSY().distance = value;
});
$("#chk_ksy_DebugFrustum").change(function () {
var show = $(this).is(":checked");
thisWidget.updateKsyDebugFrustum(show);
});
$("#btn_ksy_add").click(function () {
var horizontalAngle = Number($("#txt_ksy_horizontalAngle").val());
var verticalAngle = Number($("#txt_ksy_verticalAngle").val());
var distance = Number($("#txt_ksy_distance").val());
var showFrustum = $("#chk_ksy_DebugFrustum").is(":checked");
2023-07-08 15:37:34 +08:00
thisWidget.addKSY({
horizontalAngle: horizontalAngle,
verticalAngle: verticalAngle,
distance: distance,
2023-07-18 09:04:15 +08:00
showFrustum: showFrustum,
});
});
2023-07-08 15:37:34 +08:00
}
function updateKsyDistance(value) {
2023-07-18 09:04:15 +08:00
$("#range_ksy_distance").val(value).change();
$("#txt_ksy_distance").val(value);
2023-07-08 15:37:34 +08:00
}
//=============方量分析============
function initFLFX() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_flfx").click(function () {
thisWidget.createFLFX();
});
$("#btn_flfx_destory").click(function () {
thisWidget.destroyFLFX();
});
$("#btn_flfx_clear").click(function () {
$("#txt_flfx_Height").val(0);
$("#txt_flfx_MaxHeight").val(0);
$("#txt_flfx_MinHeight").val(0);
thisWidget.clearFLFX();
});
$("#btn_flfx_draw").click(function () {
thisWidget.startFLFX();
});
$("#txt_flfx_Height").change(function () {
var num = Number($(this).val());
thisWidget.measureVolume.height = num;
showFLFXHeightRg();
});
$("#txt_flfx_MaxHeight").change(function () {
var num = Number($(this).val());
var maxHeight = getFixedNum(thisWidget.measureVolume.interPolygonObj.maxHeight);
2023-07-08 15:37:34 +08:00
if (num < maxHeight) {
2023-07-18 09:04:15 +08:00
haoutil.msg("墙顶部高度不能低于区域内的地表高" + maxHeight);
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$(this).val(maxHeight);
thisWidget.measureVolume.maxHeight = Number(maxHeight);
return;
2023-07-08 15:37:34 +08:00
}
if (num < thisWidget.measureVolume.height) {
2023-07-18 09:04:15 +08:00
haoutil.msg("墙顶部高度不能低于基准面高" + thisWidget.measureVolume.height);
return;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
thisWidget.measureVolume.maxHeight = num;
});
$("#txt_flfx_MinHeight").change(function () {
var num = Number($(this).val());
2023-07-08 15:37:34 +08:00
if (num > thisWidget.measureVolume.height) {
2023-07-18 09:04:15 +08:00
haoutil.msg("墙底部高度不能高于基准面高" + thisWidget.measureVolume.height);
return;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
thisWidget.measureVolume.minHeight = num;
});
$("#btn_flfx_selHeight").click(function () {
thisWidget.measureVolume.selecteHeight(showFLFXHeightRg);
});
2023-07-08 15:37:34 +08:00
}
function showFLFXHeightRg() {
2023-07-18 09:04:15 +08:00
$("#txt_flfx_Height").val(thisWidget.measureVolume.height.toFixed(1));
$("#txt_flfx_MaxHeight").val(getFixedNum(thisWidget.measureVolume.maxHeight));
$("#txt_flfx_MinHeight").val(thisWidget.measureVolume.minHeight && thisWidget.measureVolume.minHeight.toFixed(1));
2023-07-08 15:37:34 +08:00
}
function getFixedNum(val) {
2023-07-18 09:04:15 +08:00
return Math.ceil(val * 10) / 10;
2023-07-08 15:37:34 +08:00
}
//=============地形开挖=============
function initDXKW() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_dxkw").click(function () {
thisWidget.createDXKW();
});
$("#btn_dxkw_destory").click(function () {
thisWidget.destroyDXKW();
});
$("#btn_dxkw_clear").click(function () {
thisWidget.clearDXKW();
});
$("#bt_dxkw_draw").click(function () {
thisWidget.startDrawDXKW();
});
$("#bt_dxkw_draw_extent").click(function () {
thisWidget.startDrawDXKWExtent();
});
$("#txt_dxkw_clipHeight").change(function () {
var nowValue = $(this).val();
thisWidget.updateDXKWHeight(nowValue);
});
2023-07-08 15:37:34 +08:00
}
function getDXKWNowHeight() {
2023-07-18 09:04:15 +08:00
return $("#txt_dxkw_clipHeight").val();
2023-07-08 15:37:34 +08:00
}
//=============地表透明=============
function initDBTM() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_dbtm").click(function () {
thisWidget.createDBTM();
});
$("#btn_dbtm_destory").click(function () {
thisWidget.destroyDBTM();
});
$("#btn_dbtm_clear").click(function () {
thisWidget.clearDBTM();
});
$("#chk_dbtm_Underground").change(function () {
var val = $(this).is(":checked");
thisWidget.underground.enabled = val;
});
$("#txt_dbtm_alpha").range({
2023-07-08 15:37:34 +08:00
onChange: function (value, bfb) {
2023-07-18 09:04:15 +08:00
thisWidget.underground.alpha = value;
2023-07-08 15:37:34 +08:00
},
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
}
function getDbtmEnable() {
2023-07-18 09:04:15 +08:00
var val = $("#chk_dbtm_Underground").is(":checked");
return val;
2023-07-08 15:37:34 +08:00
}
function updateDbtmVisible(visible) {
if (visible) {
2023-07-18 09:04:15 +08:00
$(".undergroundAttr").show();
2023-07-08 15:37:34 +08:00
} else {
2023-07-18 09:04:15 +08:00
$(".undergroundAttr").hide();
2023-07-08 15:37:34 +08:00
}
}
//=============模型剖切=============
function initMXPQ() {
2023-07-18 09:04:15 +08:00
$("#btn_mxpq_destory").click(function () {
$("#lbl_mxpq_mxmc").html("未选择");
thisWidget.destroyMXPQ();
});
$("#btn_mxpq_clear").click(function () {
thisWidget.clearMXPQ();
});
$("#btn_mxpq_selectd").click(function () {
thisWidget.selectedPQMX();
});
2023-07-08 15:37:34 +08:00
//滑动条
2023-07-18 09:04:15 +08:00
$("#range_mxpq_Distance").range({
2023-07-08 15:37:34 +08:00
onChange: function (value, bfb) {
2023-07-18 09:04:15 +08:00
$("#txt_mxpq_Distance").val(value.toFixed(1));
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.distance = value;
2023-07-08 15:37:34 +08:00
}
},
2023-07-18 09:04:15 +08:00
});
$("#txt_mxpq_Distance").change(function () {
var value = Number($(this).val());
$("#range_mxpq_Distance").val(value).change();
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.distance = value;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#btn_mxpq_DrawLine").click(function () {
thisWidget.drawLinePQMX();
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#btn_mxpq_Clipping1").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.Z;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
$("#btn_mxpq_Clipping2").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.ZR;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
$("#btn_mxpq_Clipping3").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.XR;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
$("#btn_mxpq_Clipping4").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.X;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#btn_mxpq_Clipping5").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.Y;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
$("#btn_mxpq_Clipping6").click(function () {
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetPlanClip) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.YR;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
}
function setClipDistanceRange(radius, name) {
2023-07-18 09:04:15 +08:00
$("#range_mxpq_Distance").attr("min", -radius);
$("#range_mxpq_Distance").attr("max", radius);
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
$("#lbl_mxpq_mxmc").html("已选择“" + name + "”");
2023-07-08 15:37:34 +08:00
}
//=============模型压平=============
function initMXYP() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_mxyp").click(function () {
thisWidget.createMXYP();
});
$("#btn_mxyp_destory").click(function () {
thisWidget.destroyMXYP();
$("#txt_mxyp_mxmc").html("未选择");
});
$("#btn_mxyp_clear").click(function () {
thisWidget.clearMXYP();
});
$("#txt_mxyp_selectd").click(function () {
thisWidget.selectedYPMX();
});
$("#bt_mxyp_draw").click(function () {
var height = Number($("#txt_mxyp_flatHeight").val());
thisWidget.drawMxypPoly(height);
});
$("#bt_mxyp_draw_extent").click(function () {
var height = Number($("#txt_mxyp_flatHeight").val());
thisWidget.drawMxypPolyExtent(height);
});
$("#txt_mxyp_flatHeight").change(function () {
var num = Number($(this).val());
2023-07-08 15:37:34 +08:00
if (thisWidget.tilesetFlat) {
2023-07-18 09:04:15 +08:00
thisWidget.tilesetFlat.height = num;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
}
function setMxpyName(name) {
$("#txt_mxyp_mxmc").html("已选择“" + name + "”");
2023-07-08 15:37:34 +08:00
}
//=============模型裁剪=============
function initMXCJ() {
2023-07-18 09:04:15 +08:00
$("#btn_goto_mxcj").click(function () {
thisWidget.createMXCJ();
});
$("#btn_mxcj_destory").click(function () {
thisWidget.destroyMXCJ();
});
$("#btn_mxcj_clear").click(function () {
thisWidget.clearMXCJ();
});
$("#bt_mxcj_draw").click(function () {
var clipOutSide = $("#radioMxcjType2").is(":checked");
thisWidget.drawMxcjPoly(clipOutSide);
});
2023-07-08 15:37:34 +08:00
$('input:radio[name="radioMxcjType"]').change(function () {
if (!thisWidget.tilesClipPlan) {
2023-07-18 09:04:15 +08:00
return;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
if ($(this).val() == "1") {
thisWidget.tilesClipPlan.clipOutSide = true;
2023-07-08 15:37:34 +08:00
} else {
2023-07-18 09:04:15 +08:00
thisWidget.tilesClipPlan.clipOutSide = false;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
});
2023-07-08 15:37:34 +08:00
}