当前位置: 首页 > news >正文

echarts加载区域地图,并标注点

效果如下,加载了南海区域的地图,并标注几个气象站点;

1、下载区域地图的JSON:DataV.GeoAtlas地理小工具系列

新建nanhai.json,把下载的JSON数据放进来

说明:如果第二步不打勾,只显示省的名字,

如果打勾的话,会显示省下所有市的名字,看个人需求

如果要把多个省放在一起展示,则把多个JSON文件里的features数据合并即可

2、使用Echarts展示地图

<!--地图-->
<div ref="chartRef" class="chart"/><script setup>
import {ref, onMounted} from 'vue'
import * as echarts from 'echarts'
import nanhaiJson from '@/assets/map/nanhai.json'//地图json数据: https://datav.aliyun.com/portal/school/atlas/area_selector
const chartRef = ref()
const formRef = ref()
let myChart = null;
const stationData = ref([])//加载数据
onMounted(() => {//加载南海地图echarts.registerMap('nanhai', nanhaiJson)loadData()
})const loadData = () => {xxApi.xxPage().then((data) => {if (data && data.total > 0) {stationData.value = []
//拼接地图上需要标注的点			
data.records.forEach((item) => {stationData.value.push({name: item.name,value: [item.longitude, item.latitude]})})}loadChart()})}//加载图表
const loadChart = () => {// 如果实例已经存在,则先销毁再重新创建if (myChart != null && myChart.dispose) {myChart.dispose();}myChart = echarts.init(chartRef.value)myChart.showLoading({text: 'loading'})const mapCenterLongitude = 105;const mapCenterLatitude = 36.2;let option = {geo: {map: 'nanhai',zoom: 1.8,//缩放比例roam: true, // 是否允许缩放和平移center: [mapCenterLongitude, mapCenterLatitude], // 设置地图的中心点,这里的longitude和latitude需要您根据实际需求填写itemStyle: {areaColor: 'lightskyblue',borderColor: '#404a59'},label: {show: true,color: 'rgba(0, 0, 0, 0.3)', // 设置为淡色(例如白色半透明)fontSize: 10, // 可根据需要调整字体大小fontWeight: 'normal' // 可根据需要调整字体粗细},},//气象站点列表series: [{type: 'scatter',coordinateSystem: 'geo',data: stationData.value,symbolSize: 10,label: {show: true,formatter: function (params) {return params.name; // 显示点的name},position: 'top', // 或其他位置color: '#FF4500', // 设置标签字体颜色为红色fontSize: 22, // 增大字体大小以突出显示fontWeight: 'bold' // 加粗字体以突出显示},itemStyle: {normal: {color: '#FFA500' // 设置为橘黄色}},}]}myChart.hideLoading()myChart.setOption(option)// 自适应屏幕window.addEventListener('resize', function () {myChart.resize()})
}</script><style scoped>
.chart {height: 550px;
}.detail-chart {height: 100%;overflow: auto;
}</style>

OK,大功搞定!!!

http://www.lryc.cn/news/508345.html

相关文章:

  • echarts画风向杆
  • 【LeetCode每日一题】LeetCode 345.反转字符串中的元音字母
  • 蓝桥杯练习生第四天
  • cesium 常见的 entity 列表
  • Java旅程(五)Spring 框架与微服务架构 了解 JVM 内部原理和调优
  • Niushop-master靶场漏洞
  • 35道面向初中级前端的基础面试题
  • MFC用List Control 和Picture控件实现界面切换效果
  • 1. 解决前端vue项目 vite打包内存溢出问题
  • Springboot高并发乐观锁
  • 【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等
  • pytorch MoE(专家混合网络)的简单实现。
  • 虚拟机VMware的安装问题ip错误,虚拟网卡
  • Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门hello world输出【入门一】
  • 重温设计模式--命令模式
  • 电力通信规约-104实战
  • 什么是事务
  • 数据结构:双向循坏链表
  • 3.1、SDH的5种标准容器
  • Jenkins介绍
  • 5G学习笔记之Non-Public Network
  • 网页生成鸿蒙App
  • JavaWeb通过Web查询数据库内容:(pfour_webquerymysql)
  • 将java项目部署到linux
  • moviepy将图片序列制作成视频并加载字幕 - python 实现
  • ROS1入门教程5:简单行为处理
  • Vue:实现输入框不能输负数功能
  • 管理系统、微信小程序类源码文档-哔哩哔哩教程同步
  • AOP切点表达式之方法表达式execution
  • clickhouse-题库