vue3使用echarts绘制地图

news2025/4/21 2:35:26

vue3使用echarts绘制地图

  1. 安装echarts
npm install echarts
  1. 下载地图的json数据【我这里是把json数据单独粘出来然后新建了一个文件china.json】
    下载中国及各个省份的地图数据
  2. 引入
import chinaJson from './china.json'
  1. 绘制地图
<template>
    <div ref="myChart" style="width: 1000px; height: 1000px;"></div>
</template>
<script setup>
import * as echarts from 'echarts'
import chinaJson from './china.json'
import { ref, onMounted } from 'vue'
const myChart = ref(null)

onMounted(() => {
    const myECharts = echarts.init(myChart.value);
    echarts.registerMap('china', chinaJson);
    
    var option;
    function randomData() {
        return Math.round(Math.random() * 1000);
    }

    var data = [{
        name: '北京',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '天津',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '上海',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '重庆',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '河北',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '河南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '云南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '辽宁',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '黑龙江',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '湖南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '安徽',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '山东',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '新疆',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '江苏',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '浙江',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '江西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '湖北',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '广西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '甘肃',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '山西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '内蒙古',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '陕西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '吉林',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '福建',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '贵州',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '广东',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '青海',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '西藏',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '四川',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '宁夏',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '海南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '台湾',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '香港',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '澳门',
        value1: randomData(),
        value2: randomData(),
    }];

    var resultdata0 = [];
    var resultdata1 = [];
    var resultdata2 = [];
    var sum0 = 0;
    var sum1 = 0;
    var sum2 = 0;
    var titledata = [];
    for (var i = 0; i < data.length; i++) {
        var d0 = {
            name: data[i].name,
            value: data[i].value1 + data[i].value2
        };
        var d1 = {
            name: data[i].name,
            value: data[i].value1
        };
        var d2 = {
            name: data[i].name,
            value: data[i].value2
        };
        titledata.push(data[i].name)
        resultdata0.push(d0);
        resultdata1.push(d1);
        resultdata2.push(d2);
        sum0 += data[i].value1 + data[i].value2;
        sum1 += data[i].value1;
        sum2 += data[i].value2;
    }

    function NumDescSort(a, b) {
        return a.value - b.value;
    }

    resultdata0.sort(NumDescSort);
    resultdata1.sort(NumDescSort);
    resultdata2.sort(NumDescSort);

    option = {
        title: [{
            text: '销售量统计',
            subtext: '纯属虚构',
            left: 'center'
        }, {
            text: '全部: ' + sum0,
            right: 120,
            top: 40,
            width: 100,
            textStyle: {
                color: '#fff',
                fontSize: 16
            }
        }, {
            text: "门板: " + sum1,
            right: 120,
            top: 40,
            width: 100,
            textStyle: {
                color: '#fff',
                fontSize: 16
            }
        }, {
            text: "拼框门: " + sum2,
            right: 120,
            top: 40,
            width: 100,
            textStyle: {
                color: '#fff',
                fontSize: 16
            }
        },],
        tooltip: {
            trigger: 'item'
        },
        legend: {
            orient: 'vertical',
            left: 'left',
            data: ['全部', '门板', '拼框门'],
            selectedMode: 'single',
        },
        visualMap: {
            min: 0,
            max: 2500,
            left: 'left',
            top: 'bottom',
            text: ['高', '低'],
            calculable: true,
            colorLightness: [0.2, 100],
            color: ['#c05050', '#e5cf0d', '#5ab1ef'],
            dimension: 0
        },
        toolbox: {
            show: true,
            orient: 'vertical',
            left: 'right',
            top: 'center',
            feature: {
                dataView: {
                    readOnly: false
                },
                restore: {},
                saveAsImage: {}
            }
        },
        grid: {
            right: 40,
            top: 100,
            bottom: 40,
            width: '30%'
        },
        xAxis: [{
            position: 'top',
            type: 'value',
            boundaryGap: false,
            splitLine: {
                show: false
            },
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
        }],
        yAxis: [{
            type: 'category',
            data: titledata,
            axisTick: {
                alignWithLabel: true
            }
        }],
        series: [{
            z: 1,
            name: '全部',
            type: 'map',
            map: 'china',
            left: '10',
            right: '35%',
            top: 100,
            bottom: "35%",
            zoom: 0.75,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            //roam: true,
            data: resultdata0
        }, {
            z: 1,
            name: '门板',
            type: 'map',
            map: 'china',
            left: '10',
            right: '35%',
            top: 100,
            bottom: "35%",
            zoom: 0.75,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            //roam: true,
            data: resultdata1
        }, {
            z: 1,
            name: '拼框门',
            type: 'map',
            map: 'china',
            left: '10',
            right: '35%',
            top: 100,
            bottom: "35%",
            zoom: 0.85,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            //roam: true,
            data: resultdata2
        }, {
            name: '全部',
            z: 2,
            type: 'bar',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true,
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata0
        }, {
            name: '门板',
            z: 2,
            type: 'bar',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata1
        }, {
            name: '拼框门',
            z: 2,
            type: 'bar',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata2
        }, {
            name: '全部',
            z: 2,
            type: 'pie',
            radius: ['17%', '25%'],
            center: ['30%', '82.5%'],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true,
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata0
        }, {
            name: '门板',
            z: 2,
            type: 'pie',
            radius: ['17%', '25%'],
            center: ['30%', '82.5%'],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata1
        }, {
            name: '拼框门',
            z: 2,
            type: 'pie',
            radius: ['17%', '25%'],
            center: ['30%', '82.5%'],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata2
        }]
    };

    option && myECharts.setOption(option)
})

</script>
<style></style>


<!-- <template >
    <div :id="id" :style="{ width: width, height: height }">

    </div>
</template>
<script setup>
import * as echarts from 'echarts'
import { onMounted, watch} from 'vue'
const props = defineProps({
    id: {
        type: String,
        default: 'myChart'
    },
    width: {
        type: String,
        default: '100%'
    },
    height: {
        type: String,
        default: '100%'
    },
    option: {
        type: Object,
        default: () => { }
    }
})
let myChart = null;
watch(props.option, () => {
    drawEcharts();
})
onMounted(() => {
    drawEcharts();
});
function drawEcharts() {
    myChart = echarts.init(document.getElementById(props.id));
    let option = props.option;
    option && myChart.setOption(option);

}

</script>
<style></style> -->

实现效果如下图:【上述代码使用的是可视化社区里的这个案例,如有需要自行按需更改即可!】
在这里插入图片描述
5. 封装echarts【具体封装流程可参考博客】

<template >
    <div :id="id" :style="{ width: width, height: height }">

    </div>
</template>
<script setup>
import * as echarts from 'echarts'
import { onMounted, watch } from 'vue'
import chinaJson from './china.json'
const props = defineProps({
    id: {
        type: String,
        default: 'myChart'
    },
    width: {
        type: String,
        default: '100%'
    },
    height: {
        type: String,
        default: '100%'
    },
    option: {
        type: Object,
        default: () => { }
    }
})
let myChart = null;
watch(props.option, () => {
    drawEcharts();
})
onMounted(() => {
    drawEcharts();
});
function drawEcharts() {
    myChart = echarts.init(document.getElementById(props.id));
    echarts.registerMap('china', chinaJson);
    let option = props.option;
    option && myChart.setOption(option);

}

</script>
<style></style>
  1. 直接在父组件中使用
<script setup>
import Echarts from './components/Echarts.vue';
import { ref, onMounted } from 'vue';
function randomData() {
  return Math.round(Math.random() * 1000);
}

var data = [{
  name: '北京',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '天津',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '上海',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '重庆',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '河北',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '河南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '云南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '辽宁',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '黑龙江',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '湖南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '安徽',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '山东',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '新疆',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '江苏',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '浙江',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '江西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '湖北',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '广西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '甘肃',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '山西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '内蒙古',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '陕西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '吉林',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '福建',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '贵州',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '广东',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '青海',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '西藏',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '四川',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '宁夏',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '海南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '台湾',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '香港',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '澳门',
  value1: randomData(),
  value2: randomData(),
}];

var resultdata0 = [];
var resultdata1 = [];
var resultdata2 = [];
var sum0 = 0;
var sum1 = 0;
var sum2 = 0;
var titledata = [];
for (var i = 0; i < data.length; i++) {
  var d0 = {
    name: data[i].name,
    value: data[i].value1 + data[i].value2
  };
  var d1 = {
    name: data[i].name,
    value: data[i].value1
  };
  var d2 = {
    name: data[i].name,
    value: data[i].value2
  };
  titledata.push(data[i].name)
  resultdata0.push(d0);
  resultdata1.push(d1);
  resultdata2.push(d2);
  sum0 += data[i].value1 + data[i].value2;
  sum1 += data[i].value1;
  sum2 += data[i].value2;
}

function NumDescSort(a, b) {
  return a.value - b.value;
}

resultdata0.sort(NumDescSort);
resultdata1.sort(NumDescSort);
resultdata2.sort(NumDescSort);

const lineOption = ref({});
lineOption.value = {
  title: [{
    text: '销售量统计',
    subtext: '纯属虚构',
    left: 'center'
  }, {
    text: '全部: ' + sum0,
    right: 120,
    top: 40,
    width: 100,
    textStyle: {
      color: '#fff',
      fontSize: 16
    }
  }, {
    text: "门板: " + sum1,
    right: 120,
    top: 40,
    width: 100,
    textStyle: {
      color: '#fff',
      fontSize: 16
    }
  }, {
    text: "拼框门: " + sum2,
    right: 120,
    top: 40,
    width: 100,
    textStyle: {
      color: '#fff',
      fontSize: 16
    }
  },],
  tooltip: {
    trigger: 'item'
  },
  legend: {
    orient: 'vertical',
    left: 'left',
    data: ['全部', '门板', '拼框门'],
    selectedMode: 'single',
  },
  visualMap: {
    min: 0,
    max: 2500,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'],
    calculable: true,
    colorLightness: [0.2, 100],
    color: ['#c05050', '#e5cf0d', '#5ab1ef'],
    dimension: 0
  },
  toolbox: {
    show: true,
    orient: 'vertical',
    left: 'right',
    top: 'center',
    feature: {
      dataView: {
        readOnly: false
      },
      restore: {},
      saveAsImage: {}
    }
  },
  grid: {
    right: 40,
    top: 100,
    bottom: 40,
    width: '30%'
  },
  xAxis: [{
    position: 'top',
    type: 'value',
    boundaryGap: false,
    splitLine: {
      show: false
    },
    axisLine: {
      show: false
    },
    axisTick: {
      show: false
    },
  }],
  yAxis: [{
    type: 'category',
    data: titledata,
    axisTick: {
      alignWithLabel: true
    }
  }],
  series: [{
    z: 1,
    name: '全部',
    type: 'map',
    map: 'china',
    left: '10',
    right: '35%',
    top: 100,
    bottom: "35%",
    zoom: 0.75,
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    //roam: true,
    data: resultdata0
  }, {
    z: 1,
    name: '门板',
    type: 'map',
    map: 'china',
    left: '10',
    right: '35%',
    top: 100,
    bottom: "35%",
    zoom: 0.75,
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    //roam: true,
    data: resultdata1
  }, {
    z: 1,
    name: '拼框门',
    type: 'map',
    map: 'china',
    left: '10',
    right: '35%',
    top: 100,
    bottom: "35%",
    zoom: 0.85,
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    //roam: true,
    data: resultdata2
  }, {
    name: '全部',
    z: 2,
    type: 'bar',
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true,
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata0
  }, {
    name: '门板',
    z: 2,
    type: 'bar',
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata1
  }, {
    name: '拼框门',
    z: 2,
    type: 'bar',
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata2
  }, {
    name: '全部',
    z: 2,
    type: 'pie',
    radius: ['17%', '25%'],
    center: ['30%', '82.5%'],
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true,
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata0
  }, {
    name: '门板',
    z: 2,
    type: 'pie',
    radius: ['17%', '25%'],
    center: ['30%', '82.5%'],
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata1
  }, {
    name: '拼框门',
    z: 2,
    type: 'pie',
    radius: ['17%', '25%'],
    center: ['30%', '82.5%'],
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata2
  }]
};
</script>

<template>
 <Echarts :width="'90vw'" :height="'90vh'" :option="lineOption" id="line" />
</template>

实现效果同上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1477971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

申请Sectigo证书

Sectigo&#xff08;前身为Comodo CA&#xff09;&#xff0c;是目前全球最优质的网络安全服务供应商之一。该证书颁发机构主要是为各个企业的网络数据安全传输提供解决方案以及用户数据安全。 其特点也非常鲜明&#xff0c;极具性价比&#xff0c;深受中小型企业的欢迎。其证…

企业有了ERP,为什么还要上BI?

在我们以往和企业的沟通过程中&#xff0c;我们发现还是有相当多的一部分企业对于商业智能 BI 了解不多&#xff0c;或者对商业智能 BI 的理解仅停留在花花绿绿的可视化页面上&#xff0c;要么就是提出以下类似问题&#xff1a; 财务部门&#xff1a;BI 的财务分析指标也就是三…

可靠性技术之链路聚合(LACP模式)

LACP模式下&#xff0c;两端设备所选择的活动接口数目必须保持一致&#xff0c;否则链路聚合组就无法建立。此时可以使其中一端成为主动端&#xff0c;另一端(被动端)根据主动端选择活动接口。通过系统LACP优先级确定主动端&#xff0c;值越小优先级越高。 在未配置链路聚合时&…

PDF Expert for Mac v3.9.2中文激活版下载

PDF Expert for Mac是一款易于使用的 PDF 编辑器和注释器&#xff0c;专为 Mac 设备设计。它允许用户轻松查看、编辑、签名、注释和共享 PDF。该软件使用户能够向他们的 PDF 添加文本、图像、链接和形状&#xff0c;突出显示和标记文本&#xff0c;填写表格以及签署数字文档。它…

02|JVM内存模型

1. JVM整体结构及内存模型 1.1 类装载子系统 负责加载字节码文件并将其转换为可以执行的Java类。类加载器子系统包括三个主要的类加载器&#xff1a;Bootstrap ClassLoader&#xff08;引导类加载器&#xff09;、Extension ClassLoader&#xff08;扩展类加载器&#xff09;和…

输入一个整数n,输出这个整数的二进制的0和1的个数

输入一个整数n&#xff0c;输出这个整数的二进制的0和1的个数:除二取余法 代码&#xff1a; #include <cstdio> int main() {int n;scanf_s("%d", &n);int arr[2] { 0 };while (n) {int yu n % 2;arr[yu];n n / 2;}printf("0的个数是&#xff1a…

2024-02-29 作业

作业要求&#xff1a; 编写链表&#xff0c;链表里面随便搞点数据 使用 fprintf 将链表中所有的数据&#xff0c;保存到文件中 使用 fscanf 读取文件中的数据&#xff0c;写入链表中 运行代码&#xff1a; main.c #include "link.h" int main(int argc, const char…

大数据毕业设计—基于Python旅游数据采集可视化分析推荐系统(完整系统源码+数据库+详细文档+全源码解析)

文章目录 基于Python旅游数据采集可视化分析推荐系统&#xff08;完整系统源码数据库详细文档全源码解析&#xff09;源码获取方式在文章末尾源码获取方式在文章末尾一、项目概述二、项目说明三、开发环境四、功能实现五、系统页面实现用户登录注册系统首页数据操作管理价格与销…

机试指南:Ch5:线性数据结构 Ch6:递归与分治

文章目录 第5章 线性数据结构1.向量 vector2.队列 queue(1)队列的特点、应用(2)基本操作(3)例题例题1&#xff1a;约瑟夫问题2 &#xff08;难度&#xff1a;中等&#xff09; (4)习题习题1&#xff1a;排队打饭 &#xff08;难度&#xff1a;中等&#xff09; 3.栈 stack(1)栈…

jsjiami.v7关于js加密运行环境的探索

浏览器环境、Node.js 环境和 vm2 环境之间存在一些区别&#xff0c;包括全局对象、核心模块和一些环境特定的 API。下面是一些区别的简要概述&#xff0c;以及一些代码示例来突显它们之间的不同。 1. 浏览器环境&#xff1a; 全局对象&#xff1a; 浏览器环境&#xff1a; 全…

加速AI测试领域的进化,顶尖专家与名校教授强强联合,助你快速成为人工智能测试领域的精英

随着人工智能在各行各业的广泛应用&#xff0c;学习并掌握AI技术在软件测试中的应用变得至关重要。不仅能使你跟上行业的发展趋势&#xff0c;还能提升你的竞争力。而且&#xff0c;市场对具备AI测试技能的测试工程师的需求正日益增长&#xff0c;这使得掌握这些技能能够帮助你…

Linux网络编程(四-TCP协议)

目录 一、TCP概念 二、TCP的首部格式 三、TCP可靠传输机制 3.1 确认应答机制 3.2 超时重传机制 3.3 连接管理 3.3.1 三次握手 3.3.2 四次挥手 3.4 流量控制 3.5 拥塞控制 四、TCP效率机制 4.1 滑动窗口 4.2 重发控制 4.3 延迟应答 4.4 捎带应答 五、TCP的…

【Linux C | 网络编程】gethostbyname 函数详解及C语言例子

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

【Java程序设计】【C00323】基于Springboot的高校科研信息管理系统(有论文)

基于Springboot的高校科研信息管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的高校科研信息管理系统&#xff0c;本系统有管理员、学校管理员、科研人员三种角色&#xff1b; 管理员&#xff1a;首页、个…

企业数字化转型的第一步:由被动多云向主动多云转变

随着经济环境、市场形势、技术发展、用户需求等诸多因素的变化&#xff0c;数字化转型为企业进一步提升效率和竞争力、提供更加丰富的个性化产品和服务、进行业务场景创新、探寻新的增长机会和运营模式提供了崭新的途径。越来越多的企业意识到&#xff0c;数字化转型已不是企业…

数据仓库与数据挖掘概述

目录 一、数据仓库概述 &#xff08;一&#xff09;从传统数据库到数据仓库 &#xff08;二&#xff09;数据仓库的4个特征 &#xff08;三&#xff09;数据仓库系统 &#xff08;四&#xff09;数据仓库系统体系结构 &#xff08;五&#xff09;数据仓库数据的粒度与组织…

机器人内部传感器阅读梳理及心得-速度传感器-数字式速度传感器

在机器人控制系统中&#xff0c;增量式编码器既可以作为位置传感器测量关节相对位置&#xff0c;又可作为速度传感器测量关节速度。当作为速度传感器时&#xff0c;既可以在模拟量方式下使用&#xff0c;又可以在数字量方式下使用。 模拟式方法 在这种方式下&#xff0c;需要…

day02_前后端环境搭建(前端工程搭建,登录功能说明,后端项目搭建)

文章目录 1. 软件开发介绍1.1 软件开发流程1.2 角色分工1.3 软件环境1.4 系统的分类 2. 尚品甄选项目介绍2.1 电商基本概念2.1.1 电商简介2.1.2 电商模式B2BB2CB2B2CC2BC2CO2O 2.2 业务功能介绍2.3 系统架构介绍2.4 前后端分离开发 3. 前端工程搭建3.1 Element-Admin简介3.2 El…

django框架不调试下会被达出史(sql查询次数,消耗时间)

1:使用pycharm编辑器里面 2:安装django-debug-toolbar 3:进行调试查询 https django框架调试,各个面板查询消耗时间&#xff0c;pycharm,debug 1&#xff1a;settings.py INSTALLED_APPS列表中添加 INSTALLED_APPS [# 使用多合一有点慢# multi_captcha_admin,# 多合一验证码i…

Git安装的一些步骤解说(小白好奇心严重版本)

Use bundled OpenSSH 安装 Git 时&#xff0c;您面临的选择是使用 Git 自带的 SSH 客户端&#xff08;bundled OpenSSH&#xff09;还是使用系统上已安装的外部 SSH 客户端&#xff08;external OpenSSH&#xff09;。以下是两个选项的一些考虑因素&#xff1a; 使用 Git 自带的…