479 lines
13 KiB
JavaScript
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;
|
|
}
|
|
});
|
|
}
|