bmh_cesium/public/widgets/measure/view.js

238 lines
6.6 KiB
JavaScript
Raw Normal View History

2025-03-09 23:23:50 +00:00
var thisWidget;
var thisType = "";
//当前页面业务
function initWidgetView(_thisWidget) {
thisWidget = _thisWidget;
if (thisWidget.config && thisWidget.config.style) {
$("body").addClass(thisWidget.config.style);
}
$("#measure_area_danwei").val("auto"); //默认值
$("#measure_length_danwei").val("auto"); //默认值
$('#btn_measure_length').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_area_danwei').hide();
$('#measure_length_danwei').show();
thisType = "length";
lastVal = 0;
thisWidget.drawPolyline({
unit: $('#measure_length_danwei').val(),
terrain: false,
addHeight: 0.5, //在绘制点基础自动增加高度(单位:米)
calback: onMeasureChange,
onEnd:onMeasureEnd
});
});
$('#btn_measure_length_td').bind('click', function () {
//用户首次使用时,提醒一次
haoutil.oneMsg('贴地需要地形服务支撑,部分区域可能无法贴地!', 'measure_length_tip');
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_area_danwei').hide();
$('#measure_length_danwei').show();
thisType = "length";
lastVal = 0;
thisWidget.drawPolyline({
unit: $('#measure_length_danwei').val(),
terrain: true,
calback: onMeasureChange,
onEnd:onMeasureEnd
});
});
$('#btn_measure_area').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_length_danwei').hide();
$('#measure_area_danwei').show();
thisType = "area";
lastVal = 0;
thisWidget.drawPolygon({
unit: $('#measure_area_danwei').val(),
style: {
color: "#00fff2",
outline: true,
outlineColor: "#fafa5a",
outlineWidth: 1,
opacity: 0.4,
clampToGround: false //贴地
},
calback: onMeasureChange,
onEnd:onMeasureEnd
});
});
$('#btn_measure_area_td').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_length_danwei').hide();
$('#measure_area_danwei').show();
thisType = "area";
lastVal = 0;
thisWidget.drawPolygon({
unit: $('#measure_area_danwei').val(),
terrain: true,
splitNum: 10,//step插值分割的个数
calback: onMeasureChange,
onEnd:onMeasureEnd
});
});
$('#btn_measure_angle').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').hide();
thisType = "angle";
lastVal = 0;
thisWidget.measureAngle({
onEnd:onMeasureEnd
});
});
$('#btn_measure_point').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').hide();
thisType = "point";
lastVal = 0;
thisWidget.measurePoint({
onEnd:onMeasureEnd
});
});
$('#btn_measure_section').bind('click', function () {
//用户首次使用时,提醒一次
haoutil.oneMsg('剖面需要地形服务支撑,部分区域可能无法获取高程值!', 'measure_section_tip');
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_area_danwei').hide();
$('#measure_length_danwei').show();
thisType = "section";
lastVal = 0;
thisWidget.drawSection({
unit: $('#measure_length_danwei').val(),
splitNum: 300, //插值次数
onStart: function () {//开始分析前回调(异步)
haoutil.loading.show();
},
onEnd: function () {//分析完成后回调(异步)
haoutil.loading.hide();
},
calback: showSectionResult,
onEnd:onMeasureEnd
});
});
$('#btn_measure_height').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_area_danwei').hide();
$('#measure_length_danwei').show();
thisType = "height";
lastVal = 0;
thisWidget.drawHeight({
unit: $('#measure_length_danwei').val(),
isSuper: false,
calback: onMeasureChange,
onEnd:onMeasureEnd
});
});
$('#btn_measure_supHeight').bind('click', function () {
$("#lbl_measure_result").html("");
$('#measure_danwei').show();
$('#measure_area_danwei').hide();
$('#measure_length_danwei').show();
thisType = "super_height";
lastVal = 0;
thisWidget.drawHeight({
unit: $('#measure_length_danwei').val(),
isSuper: true,
calback: onMeasureChange,
onEnd:onMeasureEnd
});
});
$('#btn_measure_clear').bind('click', function () {
$("#lbl_measure_result").html("");
thisType = "";
lastVal = 0;
thisWidget.clearDraw();
});
//更换单位
$("#measure_length_danwei").change(function (e) {
var danwei = $('#measure_length_danwei').val();
thisWidget.updateUnit(thisType, danwei);
if (lastVal > 0) {
var valstr = thisWidget.formatLength(lastVal, danwei);
onMeasureChange(valstr);
}
});
$("#measure_area_danwei").change(function (e) {
var danwei = $('#measure_area_danwei').val();
thisWidget.updateUnit(thisType, danwei);
if (lastVal > 0) {
var valstr = thisWidget.formatArea(lastVal, danwei);
onMeasureChange(valstr);
}
});
$("#chk_onlyPickModelPosition").change(function () {
var val = $(this).is(':checked');
thisWidget.changeOnlyPickModel(val);
});
}
var lastVal = 0;
//修改值回调
function onMeasureChange(valstr, val) {
if (val)
lastVal = val;
$("#lbl_measure_result").html(valstr);
}
function showSectionResult(param, val) {
if (haoutil.isutil.isString(param)) {
onMeasureChange(param, val);
return;
}
onMeasureChange(param.distancestr, param.distance);
thisWidget.showSectionChars(param);
}
//单个对象绘制完成结束后的回调
function onMeasureEnd(entity) {
// console.log('测量完成');
}