Fei_Xian_Lin_Ye_Fang_Huo/public/widgets/analysis/view.js

479 lines
13 KiB
JavaScript

"use script"; //开发环境建议开启严格模式
//对应widget.js中MyWidget实例化后的对象
var thisWidget;
//当前页面业务
function initWidgetView(_thisWidget) {
thisWidget = _thisWidget;
//点击显示子页面
$(".tool-btn").click(function () {
$(this).parents(".basicbox").hide();
$(".mainbox").eq($(this).index()).show().siblings(".mainbox").hide();
});
//返回主菜单
$(".backmenu").click(function () {
$(this).parents(".mainbox").hide();
$(".basicbox").show();
thisWidget.destroyAll();
});
initRZFX(); //日照分析
initPDPX(); //坡度坡向
initKSY(); //可视域分析
initFLFX(); //方量分析
initDXKW(); //地形开挖
initDBTM(); //地表透明
initMXPQ(); //模型剖切
initMXYP(); //模型压平
initMXCJ(); //模型裁剪
}
//=============日照分析=============
function initRZFX() {
$("#btn_goto_rzfx").click(function () {
thisWidget.createRZFX();
});
$("#btn_rzfx_destory").click(function () {
thisWidget.destroyRZFX();
});
// $('#btn_rzfx_clear').click(function () {
// thisWidget.shadows.clear()
// });
jeDate("#txt_rzfx_Date", {
theme: { bgcolor: "#135b91", pnColor: "#00CCFF" },
format: "YYYY-MM-DD",
});
var today = new Date().format("yyyy-MM-dd");
$("#txt_rzfx_Date").val(today);
//滑动条
$("#range_ksy_currTime").range({
onChange: function (value, bfb) {
var dateTime = getCurrTime();
thisWidget.shadows.time = dateTime;
$("#btn_rzfx_btn_rzfx_pause").val("播放");
},
});
$("#btn_rzfx_btn_rzfx_pause").click(function () {
if (thisWidget.shadows.isStart) {
thisWidget.shadows.pause();
$("#btn_rzfx_btn_rzfx_pause").val("播放");
} else {
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("暂停");
}
});
}
function getCurrTime() {
var value = Number($("#range_ksy_currTime").val());
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"));
return dateTime;
}
function setRZFXNowTime(date) {
var currTime = date.getHours() * 60 + date.getMinutes();
$("#range_ksy_currTime").val(currTime).change();
$("#lbl_rzfx_nowTime").html(date.format("MM月dd日 HH:mm"));
}
//=============坡度坡向=============
function initPDPX() {
$("#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;
}
});
}
//=============可视域分析=============
function initKSY() {
$("#btn_goto_ksy").click(function () {
thisWidget.createKSY();
});
$("#btn_ksy_destory").click(function () {
thisWidget.destroyKSY();
});
$("#btn_ksy_clear").click(function () {
thisWidget.clearKSY();
updateKsyDistance(100);
});
//滑动条
$("#range_ksy_horizontalAngle").range({
onChange: function (value, bfb) {
$("#txt_ksy_horizontalAngle").val(value);
thisWidget.getLastKSY().horizontalAngle = value;
},
});
$("#txt_ksy_horizontalAngle").change(function () {
var value = Number($(this).val());
$("#range_ksy_horizontalAngle").val(value).change();
thisWidget.getLastKSY().horizontalAngle = value;
});
$("#range_ksy_verticalAngle").range({
onChange: function (value, bfb) {
$("#txt_ksy_verticalAngle").val(value);
thisWidget.getLastKSY().verticalAngle = value;
},
});
$("#txt_ksy_verticalAngle").change(function () {
var value = Number($(this).val());
$("#range_ksy_verticalAngle").val(value).change();
thisWidget.getLastKSY().verticalAngle = value;
});
$("#range_ksy_distance").range({
onChange: function (value, bfb) {
$("#txt_ksy_distance").val(value);
thisWidget.getLastKSY().distance = value;
},
});
$("#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");
thisWidget.addKSY({
horizontalAngle: horizontalAngle,
verticalAngle: verticalAngle,
distance: distance,
showFrustum: showFrustum,
});
});
}
function updateKsyDistance(value) {
$("#range_ksy_distance").val(value).change();
$("#txt_ksy_distance").val(value);
}
//=============方量分析============
function initFLFX() {
$("#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);
if (num < maxHeight) {
haoutil.msg("墙顶部高度不能低于区域内的地表高" + maxHeight);
$(this).val(maxHeight);
thisWidget.measureVolume.maxHeight = Number(maxHeight);
return;
}
if (num < thisWidget.measureVolume.height) {
haoutil.msg("墙顶部高度不能低于基准面高" + thisWidget.measureVolume.height);
return;
}
thisWidget.measureVolume.maxHeight = num;
});
$("#txt_flfx_MinHeight").change(function () {
var num = Number($(this).val());
if (num > thisWidget.measureVolume.height) {
haoutil.msg("墙底部高度不能高于基准面高" + thisWidget.measureVolume.height);
return;
}
thisWidget.measureVolume.minHeight = num;
});
$("#btn_flfx_selHeight").click(function () {
thisWidget.measureVolume.selecteHeight(showFLFXHeightRg);
});
}
function showFLFXHeightRg() {
$("#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));
}
function getFixedNum(val) {
return Math.ceil(val * 10) / 10;
}
//=============地形开挖=============
function initDXKW() {
$("#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);
});
}
function getDXKWNowHeight() {
return $("#txt_dxkw_clipHeight").val();
}
//=============地表透明=============
function initDBTM() {
$("#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({
onChange: function (value, bfb) {
thisWidget.underground.alpha = value;
},
});
}
function getDbtmEnable() {
var val = $("#chk_dbtm_Underground").is(":checked");
return val;
}
function updateDbtmVisible(visible) {
if (visible) {
$(".undergroundAttr").show();
} else {
$(".undergroundAttr").hide();
}
}
//=============模型剖切=============
function initMXPQ() {
$("#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();
});
//滑动条
$("#range_mxpq_Distance").range({
onChange: function (value, bfb) {
$("#txt_mxpq_Distance").val(value.toFixed(1));
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.distance = value;
}
},
});
$("#txt_mxpq_Distance").change(function () {
var value = Number($(this).val());
$("#range_mxpq_Distance").val(value).change();
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.distance = value;
}
});
$("#btn_mxpq_DrawLine").click(function () {
thisWidget.drawLinePQMX();
});
$("#btn_mxpq_Clipping1").click(function () {
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.Z;
}
});
$("#btn_mxpq_Clipping2").click(function () {
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.ZR;
}
});
$("#btn_mxpq_Clipping3").click(function () {
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.XR;
}
});
$("#btn_mxpq_Clipping4").click(function () {
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.X;
}
});
$("#btn_mxpq_Clipping5").click(function () {
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.Y;
}
});
$("#btn_mxpq_Clipping6").click(function () {
if (thisWidget.tilesetPlanClip) {
thisWidget.tilesetPlanClip.type = parent.mars3d.thing.TilesetPlanClip.Type.YR;
}
});
}
function setClipDistanceRange(radius, name) {
$("#range_mxpq_Distance").attr("min", -radius);
$("#range_mxpq_Distance").attr("max", radius);
$("#lbl_mxpq_mxmc").html("已选择“" + name + "”");
}
//=============模型压平=============
function initMXYP() {
$("#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());
if (thisWidget.tilesetFlat) {
thisWidget.tilesetFlat.height = num;
}
});
}
function setMxpyName(name) {
$("#txt_mxyp_mxmc").html("已选择“" + name + "”");
}
//=============模型裁剪=============
function initMXCJ() {
$("#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);
});
$('input:radio[name="radioMxcjType"]').change(function () {
if (!thisWidget.tilesClipPlan) {
return;
}
if ($(this).val() == "1") {
thisWidget.tilesClipPlan.clipOutSide = true;
} else {
thisWidget.tilesClipPlan.clipOutSide = false;
}
});
}