效果图:
代码部分:
<template> <div class="compassSty"> <div id="OriengaugeId" class="cesiumContainer"></div> </div> </template> <script> import * as echarts from "echarts"; export default { props: ["OriengaugeId", "GaugeList"], data() { return {}; }, mounted() { this.$nextTick(() => { this.drawgauge("OriengaugeId"); }); }, methods: { drawgauge(id) { let GaugeEcharts = echarts.init(document.getElementById(id)); GaugeEcharts.setOption({ tooltip: { show: false, formatter: "{a} <br/>{b} : {c}级", }, grid: {}, series: [ // 这里是我们需要用到的仪表盘 { startAngle: 90, endAngle: -270, min: 0, max: 360, z: 8, center: ["50%", "50%"], radius: "70%", type: "gauge", axisTick: { show: false, }, //仪表盘指针。 pointer: { show: true, // 指针样式 icon: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAiCAMAAABcDciTAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABFFBMVEX/AAD/AAH/AQL/AQH/AAL/////AAD/AAH/AQL/AAD/AAD/AAD/AAD/AAH/AAD/AQL/AQL/AAD/AAL/AAD/AAD/AAH/AAD/AAD/AAD/AAD/AQH/AAD/AAD/AAD/AQL/AAD/AAD/AAD/AAD/AAL/AAD/AAD/AAD/AAD/AAD/AAH/AAL/AAD/AAL/Cgr/Dg7/Cgr/Dg//DQ//DQ7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAD/AAH/AQL/AQH/AAL///8EndKmAAAAVnRSTlMAAAAAAAAXJ2R4s8gM9v4aUGmguQPr+g8+W4yq3PMHK0x6m8jpAho9Zowatdwx9PX09PQxGrXcZoz+PcjpAnqbK0zzB6o+WwPr+g+guVBpDPazZHgXJ2NJFc8AAAABYktHRAX4b+nHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5QcVBiY1zlpgmQAAAOZJREFUGNNNzOdawkAQheHROIoNe+8NKy5KRBB771gPCXv/92FmdhM8P5Lv3WcTIll3T4eMOmW5Xmqvr1/PtAcG80MKeQwDI9mtUWAs7fEJYHLKY7qJJmakgiCYTRpz/m/zQISFRcWSdBwt6ycrEGFVsQa0YmB9I+lCHm6bRF1bcgdxjG2inV09biHaK1Bx35jSQcmYQ1Okss1WpvAo7UpIfJyiysRhzeMkAdddn54Jzh0uWHDpcKXgivT1jUNVcMsOd4J7j4dHa5+ePfjF2ldO8Wbte4bGRy3MwJ91buPr+x9+fvX1BzPHP7+pF5ngAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTA3LTIxVDA2OjM4OjI2KzAwOjAwIPtDQAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wNy0yMVQwNjozODo1MyswMDowMAlb3UIAAAAASUVORK5CYII=", length: "50%", //指针长度 width: "10%",//指针宽度 offsetCenter: [0, "25%"],//指针位置 keepAspect: true, itemStyle: { color: "#ffc600", }, }, // 坐标轴线,也就是圆圈的边框线 axisLine: { show: false, }, // 分割线 splitLine: { show: true, length: "100%", lineStyle: { color: "#fff", width: 1, }, }, splitNumber: 4, // 刻度标签 axisLabel: { show: true, color: "#fff", distance: 120, fontSize: 26, formatter: function (value) { switch (value) { case 0: return "S"; case 90: return "W"; case 180: return "N"; case 270: return "E"; default: break; } }, }, //最下边数值的设置 detail: { show: false, }, data: [ { value: [230], }, ], }, //这里是内部填充用的饼图 { type: "pie", startAngle: 90, radius: "80%", emphasis: { scale: false, }, legendHoverLink: false, lable: { show: false, emphasis: { show: false, }, }, labelLine: { show: false, }, center: ["50%", "50%"], z: -10, data: [ { value: 100, itemStyle: { color: "#3450a4", }, }, ], }, ], }); setTimeout(function () { window.onresize = function () { GaugeEcharts.resize(); }; }, 200); }, }, }; </script> <style lang="less" scoped> .compassSty { width: 400px; height: 400px; position: absolute; top: 40%; left: 50%; } .cesiumContainer { width: 100%; height: 100%; } </style>
ps:根据echarts文档调整获取自己所需要的样式,这里只是一个简单的demo效果