vue中实现百度地图全国与省市地图切换

2024-06-21 06:52

本文主要是介绍vue中实现百度地图全国与省市地图切换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本文主要是用于示例全国地图,点击省市地图直接跳转到该省市地图并展示,可以拓展在地图上显示标记点(本文未做示例),后续有完整代码,但是由于需要与本来项目业务代码进项分割,可能会有些问题,地图渲染上所需要的json文件,有资源链接,但是需要积分,在网上搜搜 也会有相关资源,不是非必要使用该json文件,注意一下导入的文件名称即可

文章目录

  • 前言
    • @[TOC](文章目录)
    • 一、示例代码
        • 1.1 地图json文件
        • 1.2 示例解析
    • 二、完整代码


一、示例代码

1.1 地图json文件

资源地址:百度地图全国以及各省json文件

1.2 示例解析

1.dom层
默认渲染全国地图,返回按钮主要用于点击省市地图跳转进入省市的地图的时候,设置一个返回按钮,返回到全国地图

 <el-button size="mini"type="primary"v-if="mapBackBtnShow"@click="drawBaiduMap">返回</el-button><div ref="mapChartsRef"style="width: 100%;height: 100%;z-index: 99;"></div>

2.逻辑准备
引入echarts

import * as echarts from 'echarts'

控制返回按钮显示隐藏

mapBackBtnShow: false,

3.主要逻辑方法

drawBaiduMap() {var that = this//1.中国地图var chinaMap = require('./homePage/chart.china.json')//2.台湾省地图var taiWanMap = require('./homePage/provinceJSON/taiwan.json')//3.海南省地图var haiNanMap = require('./homePage/provinceJSON/hainan.json')//4.安徽省地图var anHuiMap = require('./homePage/provinceJSON/anhui.json')//5.江西省地图var jiangXiMap = require('./homePage/provinceJSON/jiangxi.json')//6.湖南省地图var huNanMap = require('./homePage/provinceJSON/hunan.json')//7.云南省地图var yunNanMap = require('./homePage/provinceJSON/yunnan.json')//8.贵州省地图var guiZhouMap = require('./homePage/provinceJSON/guizhou.json')//9.广东省地图var guangDongMap = require('./homePage/provinceJSON/guangdong.json')//10.福建省地图var fuJianMap = require('./homePage/provinceJSON/fujian.json')//11.浙江省地图var zheJiangMap = require('./homePage/provinceJSON/zhejiang.json')//12.江苏省地图var jiangSuMap = require('./homePage/provinceJSON/jiangsu.json')//13.四川省地图var siChuanMap = require('./homePage/provinceJSON/sichuan.json')//14.重庆市市地图var chongQingMap = require('./homePage/provinceJSON/chongqing.json')//15.湖北省地图var huBeiMap = require('./homePage/provinceJSON/hubei.json')//16.河南省地图var heNanMap = require('./homePage/provinceJSON/henan.json')//17.山东省地图var shanDongMap = require('./homePage/provinceJSON/shandong.json')//18.吉林省地图var jiLinMap = require('./homePage/provinceJSON/jilin.json')//19.辽宁省地图var liaoNingMap = require('./homePage/provinceJSON/liaoning.json')//20.天津市市地图var tianJinMap = require('./homePage/provinceJSON/tianjin.json')//21.北京市市地图var beiJingMap = require('./homePage/provinceJSON/beijing.json')//22.河北省地图var heBeiMap = require('./homePage/provinceJSON/hebei.json')//23.山西省地图var shanXiMap = require('./homePage/provinceJSON/shanxi.json')//24.陕西省地图var shanXi2Map = require('./homePage/provinceJSON/shangxi.json')//25.宁夏回族自治区省地图var ningXiaMap = require('./homePage/provinceJSON/ningxia.json')//26.青海省地图var qingHaiMap = require('./homePage/provinceJSON/qinghai.json')//27.西藏自治区地图var xiZangMap = require('./homePage/provinceJSON/xizang.json')//28.黑龙江省地图var heiLongJiangMap = require('./homePage/provinceJSON/heilongjiang.json')//29.内蒙古自治区地图var neimengGuMap = require('./homePage/provinceJSON/neimenggu.json')//30.甘肃省地图var ganSuMap = require('./homePage/provinceJSON/gansu.json')//31.新疆维吾尔自治区省地图var xinJiangMap = require('./homePage/provinceJSON/xinjiang.json')//32.广西壮族自治区地图var guangxiMap = require('./homePage/provinceJSON/guangxi.json')//33.上海市地图var shangHaiMap = require('./homePage/provinceJSON/shanghai.json')//34.香港var xiangGangMap = require('./homePage/provinceJSON/xianggang.json')//35.澳门var aoMenGangMap = require('./homePage/provinceJSON/aomen.json')//设置初始地图var mapname = chinaMapvar mapJson = [{name: '台湾省',json: taiWanMap,},{name: '海南省',json: haiNanMap,},{name: '安徽省',json: anHuiMap,},{name: '江西省',json: jiangXiMap,},{name: '湖南省',json: huNanMap,},{name: '云南省',json: yunNanMap,},{name: '贵州省',json: guiZhouMap,},{name: '广东省',json: guangDongMap,},{name: '福建省',json: fuJianMap,},{name: '浙江省',json: zheJiangMap,},{name: '江苏省',json: jiangSuMap,},{name: '四川省',json: siChuanMap,},{name: '重庆市',json: chongQingMap,},{name: '湖北省',json: huBeiMap,},{name: '河南省',json: heNanMap,},{name: '山东省',json: shanDongMap,},{name: '吉林省',json: jiLinMap,},{name: '辽宁省',json: liaoNingMap,},{name: '天津市',json: tianJinMap,},{name: '上海市',json: shangHaiMap,},{name: '北京市',json: beiJingMap,},{name: '河北省',json: heBeiMap,},{name: '山西省',json: shanXiMap,},{name: '陕西省',json: shanXi2Map,},{name: '宁夏回族自治区',json: ningXiaMap,},{name: '青海省',json: qingHaiMap,},{name: '西藏自治区',json: xiZangMap,},{name: '黑龙江省',json: heiLongJiangMap,},{name: '内蒙古自治区',json: neimengGuMap,},{name: '甘肃省',json: ganSuMap,},{name: '新疆维吾尔自治区',json: xinJiangMap,},{name: '广西壮族自治区',json: guangxiMap,},{name: '香港特别行政区',json: xiangGangMap,},{name: '澳门特别行政区',json: aoMenGangMap,},]this.mapBackBtnShow = falsevar myChart = echarts.init(this.$refs.mapChartsRef)myChart.showLoading({ text: '正在加载数据' }) //增加等待提示//点击事件myChart.on('click', function (e) {var chooseName = mapJson.filter((item) => {return item.name.includes(e.name)})mapname = chooseName[0].jsonthat.mapBackBtnShow = true//绘制地图mapInit()})//设置初始化时间setTimeout(function () {mapInit()}, 500)//创建地图var mapInit = () => {echarts.registerMap('China', mapname)//文件加载的动画myChart.hideLoading()//地图开始var option = {//设置背景颜色backgroundColor: '#fff',geo: {map: 'China', //地图为刚刚设置的Chinatop: 10,zoom: 1, //当前视角的缩放比例roam: false, //是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启},tooltip: {show: true,triggerOn: 'mousemove',padding: [5, 8],enterable: true,transitionDuration: 1,textStyle: {color: '#606266',decoration: 'none',},},series: [//数据系列{type: 'map', //地图类型geoIndex: 0,aspectScale: 0.75, //长宽比//地图上文字label: {normal: {show: false, //是否显示标签textStyle: {color: '#fff',},},emphasis: {textStyle: {color: '#333',},},},//地图区域的多边形 图形样式itemStyle: {normal: {borderColor: '#909399',borderWidth: 1.5,// areaColor: '#12235c',areaColor: '#eee',},emphasis: {areaColor: '#FFDF33',borderWidth: 0,},},// zoom: 1.2, //当前视角的缩放比例//是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启roam: false,map: 'China', //使用中国地图},],}myChart.setOption(option)window.addEventListener('resize', () => {myChart.resize()})}},

在这里插入图片描述
在这里插入图片描述

二、完整代码

<template><div><el-button size="mini"type="primary"v-if="mapBackBtnShow"@click="drawBaiduMap">返回</el-button><div ref="mapChartsRef"style="width: 100%;height: 100%;z-index: 99;"></div></div>
</template><script>
import * as echarts from 'echarts'
export default {data(){return {mapBackBtnShow: false,},mounted() {this.drawBaiduMap()},methods:{/* 地图 */drawBaiduMap() {var that = this//1.中国地图var chinaMap = require('./homePage/chart.china.json')//2.台湾省地图var taiWanMap = require('./homePage/provinceJSON/taiwan.json')//3.海南省地图var haiNanMap = require('./homePage/provinceJSON/hainan.json')//4.安徽省地图var anHuiMap = require('./homePage/provinceJSON/anhui.json')//5.江西省地图var jiangXiMap = require('./homePage/provinceJSON/jiangxi.json')//6.湖南省地图var huNanMap = require('./homePage/provinceJSON/hunan.json')//7.云南省地图var yunNanMap = require('./homePage/provinceJSON/yunnan.json')//8.贵州省地图var guiZhouMap = require('./homePage/provinceJSON/guizhou.json')//9.广东省地图var guangDongMap = require('./homePage/provinceJSON/guangdong.json')//10.福建省地图var fuJianMap = require('./homePage/provinceJSON/fujian.json')//11.浙江省地图var zheJiangMap = require('./homePage/provinceJSON/zhejiang.json')//12.江苏省地图var jiangSuMap = require('./homePage/provinceJSON/jiangsu.json')//13.四川省地图var siChuanMap = require('./homePage/provinceJSON/sichuan.json')//14.重庆市市地图var chongQingMap = require('./homePage/provinceJSON/chongqing.json')//15.湖北省地图var huBeiMap = require('./homePage/provinceJSON/hubei.json')//16.河南省地图var heNanMap = require('./homePage/provinceJSON/henan.json')//17.山东省地图var shanDongMap = require('./homePage/provinceJSON/shandong.json')//18.吉林省地图var jiLinMap = require('./homePage/provinceJSON/jilin.json')//19.辽宁省地图var liaoNingMap = require('./homePage/provinceJSON/liaoning.json')//20.天津市市地图var tianJinMap = require('./homePage/provinceJSON/tianjin.json')//21.北京市市地图var beiJingMap = require('./homePage/provinceJSON/beijing.json')//22.河北省地图var heBeiMap = require('./homePage/provinceJSON/hebei.json')//23.山西省地图var shanXiMap = require('./homePage/provinceJSON/shanxi.json')//24.陕西省地图var shanXi2Map = require('./homePage/provinceJSON/shangxi.json')//25.宁夏回族自治区省地图var ningXiaMap = require('./homePage/provinceJSON/ningxia.json')//26.青海省地图var qingHaiMap = require('./homePage/provinceJSON/qinghai.json')//27.西藏自治区地图var xiZangMap = require('./homePage/provinceJSON/xizang.json')//28.黑龙江省地图var heiLongJiangMap = require('./homePage/provinceJSON/heilongjiang.json')//29.内蒙古自治区地图var neimengGuMap = require('./homePage/provinceJSON/neimenggu.json')//30.甘肃省地图var ganSuMap = require('./homePage/provinceJSON/gansu.json')//31.新疆维吾尔自治区省地图var xinJiangMap = require('./homePage/provinceJSON/xinjiang.json')//32.广西壮族自治区地图var guangxiMap = require('./homePage/provinceJSON/guangxi.json')//33.上海市地图var shangHaiMap = require('./homePage/provinceJSON/shanghai.json')//34.香港var xiangGangMap = require('./homePage/provinceJSON/xianggang.json')//35.澳门var aoMenGangMap = require('./homePage/provinceJSON/aomen.json')//设置初始地图var mapname = chinaMapvar mapJson = [{name: '台湾省',json: taiWanMap,},{name: '海南省',json: haiNanMap,},{name: '安徽省',json: anHuiMap,},{name: '江西省',json: jiangXiMap,},{name: '湖南省',json: huNanMap,},{name: '云南省',json: yunNanMap,},{name: '贵州省',json: guiZhouMap,},{name: '广东省',json: guangDongMap,},{name: '福建省',json: fuJianMap,},{name: '浙江省',json: zheJiangMap,},{name: '江苏省',json: jiangSuMap,},{name: '四川省',json: siChuanMap,},{name: '重庆市',json: chongQingMap,},{name: '湖北省',json: huBeiMap,},{name: '河南省',json: heNanMap,},{name: '山东省',json: shanDongMap,},{name: '吉林省',json: jiLinMap,},{name: '辽宁省',json: liaoNingMap,},{name: '天津市',json: tianJinMap,},{name: '上海市',json: shangHaiMap,},{name: '北京市',json: beiJingMap,},{name: '河北省',json: heBeiMap,},{name: '山西省',json: shanXiMap,},{name: '陕西省',json: shanXi2Map,},{name: '宁夏回族自治区',json: ningXiaMap,},{name: '青海省',json: qingHaiMap,},{name: '西藏自治区',json: xiZangMap,},{name: '黑龙江省',json: heiLongJiangMap,},{name: '内蒙古自治区',json: neimengGuMap,},{name: '甘肃省',json: ganSuMap,},{name: '新疆维吾尔自治区',json: xinJiangMap,},{name: '广西壮族自治区',json: guangxiMap,},{name: '香港特别行政区',json: xiangGangMap,},{name: '澳门特别行政区',json: aoMenGangMap,},]this.mapBackBtnShow = falsevar myChart = echarts.init(this.$refs.mapChartsRef)myChart.showLoading({ text: '正在加载数据' }) //增加等待提示//点击事件myChart.on('click', function (e) {var chooseName = mapJson.filter((item) => {return item.name.includes(e.name)})mapname = chooseName[0].jsonthat.mapBackBtnShow = true//绘制地图mapInit()})//设置初始化时间setTimeout(function () {mapInit()}, 500)//创建地图var mapInit = () => {echarts.registerMap('China', mapname)//文件加载的动画myChart.hideLoading()//地图开始var option = {//设置背景颜色backgroundColor: '#fff',geo: {map: 'China', //地图为刚刚设置的Chinatop: 10,zoom: 1, //当前视角的缩放比例roam: false, //是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启},tooltip: {show: true,triggerOn: 'mousemove',padding: [5, 8],enterable: true,transitionDuration: 1,textStyle: {color: '#606266',decoration: 'none',},},series: [//数据系列{type: 'map', //地图类型geoIndex: 0,aspectScale: 0.75, //长宽比//地图上文字label: {normal: {show: false, //是否显示标签textStyle: {color: '#fff',},},emphasis: {textStyle: {color: '#333',},},},//地图区域的多边形 图形样式itemStyle: {normal: {borderColor: '#909399',borderWidth: 1.5,// areaColor: '#12235c',areaColor: '#eee',},emphasis: {areaColor: '#FFDF33',borderWidth: 0,},},// zoom: 1.2, //当前视角的缩放比例//是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启roam: false,map: 'China', //使用中国地图},],}myChart.setOption(option)window.addEventListener('resize', () => {myChart.resize()})}},}
}
</script>

这篇关于vue中实现百度地图全国与省市地图切换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080505

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依