Echarts加载南海区域地图并标注气象站点的实现步骤

作者:山岚

时间:2026-10-31

浏览:616

本文介绍如何在Vue3中使用Echarts加载南海区域地图并标注气象站点。通过DataV.GeoAtlas下载南海JSON数据,合并features数据,并在组件中注册地图、配置series及标注点,实现地图展示与站点标记。

文章目录

Echarts加载南海地图与标注效果

最终效果如上图所示,系统成功加载了南海区域的地图,并在地图上标注了多个气象站点的位置。

Echarts加载南海地图与标注效果

获取与处理南海地图JSON数据

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

Echarts加载南海地图与标注效果

在项目中新建一个名为nanhai.json的文件,将下载得到的JSON数据内容粘贴并保存至该文件中。

需要注意的是,如果在配置过程中未勾选相关选项,地图上仅会显示省份的名称。

若勾选该选项,则地图会显示该省份下所有城市的名称,具体显示层级可根据实际需求进行选择。

若需在同一界面展示多个省份,可将多个JSON文件中的features数据合并到一个文件中。

Echarts加载南海地图与标注效果

在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加载区域地图并标注点的介绍已结束。如需了解更多相关内容,可搜索本站历史文章或继续浏览后续文章,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章