Lin_Ye_Fang_Huo/public/widgets/analysis/view.js

453 lines
12 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 startDate = getCurrTime()
var endDate = new Date(_date + ' 23:59:59')
thisWidget.shadows.start(startDate, endDate)
$('#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_drawLine').click(function () {
var splitNum = Number($('#txt_pdpx_SplitNum').val())
thisWidget.drawPDPXLine(splitNum)
})
}
//=============可视域分析=============
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())
thisWidget.addKSY({
horizontalAngle: horizontalAngle,
verticalAngle: verticalAngle,
distance: distance,
})
})
}
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.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()
})
$('#btn_mxyp_clear').click(function () {
thisWidget.clearMXYP()
})
$('#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 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
}
})
}