wangzhibo
2021-09-07 6a0d606ab05421cbb770c3be6fd66d0c95dfcdaf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
"use script"; //开发环境建议开启严格模式
 
//对应widget.js中MyWidget实例化后的对象
var thisWidget;
 
//当前页面业务
function initWidgetView(_thisWidget) {
  thisWidget = _thisWidget;
}
 
//图表
var myChart1;
 
//剖面分析 图表
function setEchartsData(data) {
  if (myChart1 == null) {
    myChart1 = echarts.init(document.getElementById("echartsView1"), "dark");
  }
 
  var arrPoint = data.arrPoint;
 
  var option = {
    grid: {
      left: 10,
      right: 10,
      bottom: 10,
      containLabel: true,
    },
    dataZoom: [
      {
        type: "inside",
        throttle: 50,
      },
    ],
    tooltip: {
      trigger: "axis",
      //position: function (point, params, dom, rect, size) {
      //    return [10, 20];
      //},
      formatter: function (params) {
        var inhtml = "";
        if (params.length == 0) {
          thisWidget.hideTipMarker();
          return inhtml;
        }
 
        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));
 
        inhtml = `当前位置<br />
                    距起点:${len}<br />
                    海拔:<span style='color:${params[0].color};'>${hbgdStr}</span><br />
                    经度:${point.lng}<br />
                    纬度:${point.lat}`;
 
        thisWidget.showTipMarker(point, hbgd, inhtml);
 
        return inhtml;
      },
    },
    xAxis: [
      {
        name: "行程",
        type: "category",
        boundaryGap: false,
        axisLine: {
          show: false,
        },
        axisLabel: {
          show: false,
        },
        data: data.arrLen,
      },
    ],
    yAxis: [
      {
        //name: '高度',
        type: "value",
        min: getMinZ(arrPoint),
        axisLabel: {
          // rotate: 60,
          formatter: "{value} 米",
        },
      },
    ],
    series: [
      {
        name: "高程值",
        type: "line",
        smooth: true,
        symbol: "none",
        sampling: "average",
        itemStyle: {
          normal: {
            color: "rgb(255, 70, 131)",
          },
        },
        areaStyle: {
          normal: {
            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
              {
                offset: 0,
                color: "rgb(255, 158, 68)",
              },
              {
                offset: 1,
                color: "rgb(255, 70, 131)",
              },
            ]),
          },
        },
        data: data.arrHB,
      },
    ],
  };
 
  myChart1.setOption(option);
}
 
function getMinZ(arr) {
  var minz = "dataMin";
  if (arr == null || arr.length == 0) {
    return minz;
  }
 
  minz = arr[0].alt;
  for (var i = 0; i < arr.length; i++) {
    if (arr[i].alt < minz) {
      minz = arr[i].alt;
    }
  }
  return minz;
}