本文介绍如何在Vue3中使用Echarts加载南海区域地图并标注气象站点。通过DataV.GeoAtlas下载南海JSON数据,合并features数据,并在组件中注册地图、配置series及标注点,实现地图展示与站点标记。
Echarts加载南海地图与标注效果
最终效果如上图所示,系统成功加载了南海区域的地图,并在地图上标注了多个气象站点的位置。

获取与处理南海地图JSON数据
第一步是获取区域地图的JSON数据。可以通过DataV.GeoAtlas地理小工具系列进行下载。

在项目中新建一个名为nanhai.json的文件,将下载得到的JSON数据内容粘贴并保存至该文件中。
需要注意的是,如果在配置过程中未勾选相关选项,地图上仅会显示省份的名称。
若勾选该选项,则地图会显示该省份下所有城市的名称,具体显示层级可根据实际需求进行选择。
若需在同一界面展示多个省份,可将多个JSON文件中的features数据合并到一个文件中。

在Vue3中使用Echarts展示地图
第二步是使用Echarts组件来展示地图。在Vue3项目中,通过注册地图、配置series及标注点来实现。
<!--地图-->
<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'})
let option = {
geo: {
map: 'nanhai',
zoom: 1.2,//缩放比例
roam: true, // 是否允许缩放和平移
itemStyle: {
areaColor: 'lightskyblue',
borderColor: '#404a59'
},
label: {
show: true
},
},
//气象站点列表
series: [{
type: 'scatter',
coordinateSystem: 'geo',
data: stationData.value,
symbolSize: 10,
label: {
show: true,
formatter: function (params) {
return params.name; // 显示点的name
},
position: 'top', // 或其他位置
color: '#FF4500' // 设置标签字体颜色为红色
},
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>完成上述配置后,地图加载与站点标注功能即告完成。
至此,关于Echarts加载区域地图并标注点的介绍已结束。如需了解更多相关内容,可搜索本站历史文章或继续浏览后续文章,感谢支持。