Lin_Ye_Fang_Huo/public/widgets/measureChars/view.js

136 lines
2.9 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
var myChart1;
2023-07-08 15:37:34 +08:00
//剖面分析 图表
function setEchartsData(data) {
if (myChart1 == null) {
2023-07-18 09:04:15 +08:00
myChart1 = echarts.init(document.getElementById("echartsView1"), "dark");
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
var arrPoint = data.arrPoint;
2023-07-08 15:37:34 +08:00
var option = {
grid: {
left: 10,
right: 10,
bottom: 10,
containLabel: true,
},
dataZoom: [
{
2023-07-18 09:04:15 +08:00
type: "inside",
2023-07-08 15:37:34 +08:00
throttle: 50,
},
],
tooltip: {
2023-07-18 09:04:15 +08:00
trigger: "axis",
2023-07-08 15:37:34 +08:00
//position: function (point, params, dom, rect, size) {
// return [10, 20];
//},
formatter: function (params) {
2023-07-18 09:04:15 +08:00
var inhtml = "";
2023-07-08 15:37:34 +08:00
if (params.length == 0) {
2023-07-18 09:04:15 +08:00
thisWidget.hideTipMarker();
return inhtml;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
var hbgd = params[0].value; //海拔高度
var point = arrPoint[params[0].dataIndex]; //所在经纬度
var len = haoutil.str.formatLength(Number(params[0].axisValue));
var hbgdStr = haoutil.str.formatLength(Number(params[0].value));
2023-07-08 15:37:34 +08:00
inhtml = `当前位置<br />
距起点${len}<br />
海拔<span style='color:${params[0].color};'>${hbgdStr}</span><br />
经度${point.lng}<br />
2023-07-18 09:04:15 +08:00
纬度${point.lat}`;
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
thisWidget.showTipMarker(point, hbgd, inhtml);
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
return inhtml;
2023-07-08 15:37:34 +08:00
},
},
xAxis: [
{
2023-07-18 09:04:15 +08:00
name: "行程",
type: "category",
2023-07-08 15:37:34 +08:00
boundaryGap: false,
axisLine: {
show: false,
},
axisLabel: {
show: false,
},
data: data.arrLen,
},
],
yAxis: [
{
//name: '高度',
2023-07-18 09:04:15 +08:00
type: "value",
2023-07-08 15:37:34 +08:00
min: getMinZ(arrPoint),
axisLabel: {
// rotate: 60,
2023-07-18 09:04:15 +08:00
formatter: "{value} 米",
2023-07-08 15:37:34 +08:00
},
},
],
series: [
{
2023-07-18 09:04:15 +08:00
name: "高程值",
type: "line",
2023-07-08 15:37:34 +08:00
smooth: true,
2023-07-18 09:04:15 +08:00
symbol: "none",
sampling: "average",
2023-07-08 15:37:34 +08:00
itemStyle: {
normal: {
2023-07-18 09:04:15 +08:00
color: "rgb(255, 70, 131)",
2023-07-08 15:37:34 +08:00
},
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
2023-07-18 09:04:15 +08:00
color: "rgb(255, 158, 68)",
2023-07-08 15:37:34 +08:00
},
{
offset: 1,
2023-07-18 09:04:15 +08:00
color: "rgb(255, 70, 131)",
2023-07-08 15:37:34 +08:00
},
]),
},
},
data: data.arrHB,
},
],
2023-07-18 09:04:15 +08:00
};
2023-07-08 15:37:34 +08:00
2023-07-18 09:04:15 +08:00
myChart1.setOption(option);
2023-07-08 15:37:34 +08:00
}
function getMinZ(arr) {
2023-07-18 09:04:15 +08:00
var minz = "dataMin";
2023-07-08 15:37:34 +08:00
if (arr == null || arr.length == 0) {
2023-07-18 09:04:15 +08:00
return minz;
2023-07-08 15:37:34 +08:00
}
2023-07-18 09:04:15 +08:00
minz = arr[0].alt;
2023-07-08 15:37:34 +08:00
for (var i = 0; i < arr.length; i++) {
if (arr[i].alt < minz) {
2023-07-18 09:04:15 +08:00
minz = arr[i].alt;
2023-07-08 15:37:34 +08:00
}
}
2023-07-18 09:04:15 +08:00
return minz;
2023-07-08 15:37:34 +08:00
}