echarts的配置项真的又多又杂
最近用echarts的地图真的头大,因为我们老板说想要科技感,但我改地图样式怎么也不生效,后来终于解决了
先看最后的效果图吧~
就讲讲地图趴

第一步:
获取百度地图的ak,这我之前博客有说过
然后下载echarts的依赖 npm i echarts --save
然后在组件内引用,一定记住要引入bmap
let echarts = require(“echarts”);
require(“echarts/extension/bmap/bmap”);
还有在index.html引入

<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak你申请的ak&s=1"></script>

关于http和https请自行百度,因为我的项目已经部署好了,所以用的https还有一定在最后加上s=1

第二步:
html部分:

给地图一个容器

 <div ref="generalMap" class="general-map" id="generalMap"></div>

js部分:

import imgUrl from "@/assets/img/map-flag.png"; //引入自定义图标的图片,后面会用到methods: {myCharts() {let myChart = echarts.init(this.$refs.generalMap); //这里是为了获得容器所在位置let res_data = this.obj.schoolList;let option = {bmap: {center: [110.114129, 23.550339],zoom: 5,roam: true,},tooltip: {trigger: "item",backgroundColor: "#06AFFD",padding: [8, 20, 8, 12],extraCssText: "border-radius: 11px",formatter: function (val) {//返回tooltip的内容及布局样式return `<div style="font-size: 12px;color: #ffffff">学校:${val.data.schoolName}</div><div style="font-size: 12px;color: #ffffff">设备数:${val.data.deviceCount}(${val.data.onlineCount}台在线)</div>`;},},series: [{name: "设备数量",type: "custom", //type的值为'custom'时,表示自定义图标coordinateSystem: "bmap",data: res_data,renderItem(params, api) {let latitude = res_data[params.dataIndex].latitude; //把坐标数据取出来 纬度let longitude = res_data[params.dataIndex].longitude; //精度let arr = [longitude, latitude];//具体实现自定义图标的方法return {type: "image",style: {image: imgUrl, // 自定义的图片地址(上面引入,也可直接写图片的网络地址)x: api.coord(arr)[0], // 图标的经度    必须使用 api.coord()方法对坐标进行转化之后位置才正确y: api.coord(arr)[1], //图标的纬度width: 30, // 图标大小设置height: 30,},};},},],};myChart.setOption(option);},}
mounted() {setTimeout(() => {this.myCharts();const resizeOb = new ResizeObserver((entries) => {for (const entry of entries) {echarts.getInstanceByDom(entry.target).resize();}});resizeOb.observe(this.$refs.generalMap);});},

到这里大家应该都能懂,就是一个配置的问题,因为我的项目需要用自定义图标还有自定义的悬浮框提示,所以就照着百度的改了改,大家可以照着参考,到这里就剩地图样式没改了,就是没有所说的科技感
这里我踩了很多坑

1.在这里配置:

bmap: {center: [110.114129, 23.550339],zoom: 5,roam: true,//官网在这里写的配置改地图样式,反正我在vue里没生效,不知道什么问题,大家可以试试,也许能成功mapStyle: {styleJson: [{'featureType': 'water','elementType': 'all','stylers': {'color': '#d1d1d1'}}]}},

我反正没用,继续找方法

2.找到node_modules文件夹,找到echarts的包,在这里
参照了这篇博客 https://www.codetd.com/article/4924456
找到extension这个文件夹的bmap的BMapCoordSys.js
路径是这样:
node_modules\echarts\extension\bmap\BMapCoordSys.js

找到这句话

 var bmap = bmapModel.__bmap = new BMap.Map(bmapRoot, mapOptions);

这代码下面有这句代码

bmap.addOverlay(overlay); // Override

在这个代码下面改样式

bmap.setMapStyle({style:'light'});          //设置模板的初始风格,清新蓝

有用,能改样式了,激动一下,可是我的项目不止一处用到了地图,关键是样式还不一样,如果你们只有一处用到了,就可以直接改初始风格,我就继续找

3.既然可以bmap.setMapStyle({style:‘light’});
那么在组件的实例中是不是也可以呢
我是自己去百度地图个性化地图里配置了json,然后单独写一个js文件,再把这个js引入组件的
import { myStyleJson } from “./mapStyle.js”;
在创建实例后写上:
var bmap = myChart.getModel().getComponent(“bmap”).getBMap();
bmap.setMapStyle({ styleJson: myStyleJson });

成功啦

至于个性化地图,大家可以自行去配置
在这里


http://lbsyun.baidu.com/apiconsole/custommap 打开个性化地图样式编辑器去配置一下自己想要的样式
然后把json代码复制下来,就可以用啦

---------------------
作者:是小芬达呀
来源:CSDN
原文:https://blog.csdn.net/weixin_52921391/article/details/115000755?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161719559516780269815989%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161719559516780269815989&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-2-115000755.nonecase&utm_term=bmap++mapStyle
版权声明:本文为是小芬达呀原创文章,转载请附上博文链接!

[转](1条消息) 使用echarts百度地图并更改地图样式(转载请删除括号里的内容)相关推荐

  1. [转](1条消息) 前端必知:针对高分辨率屏幕的样式优化(转载请删除括号里的内容)

    苹果定义高分屏(retina)已经好久了,只是最近才有越来越多的网站开始重视高分屏下的表现,QQ空间也早支持高分屏了,CSS Gaga也加入了对@2x图片的支持.嗯,迟到的文章,和大家简单的分享下. ...

  2. [转](1条消息) vue 访问本地文件 相对路径 文件目录 three.js 加载模型(转载请删除括号里的内容)

    环境: vue/cli 4.5.9 "three": "^0.124.0", "vue": "^2.6.11", &qu ...

  3. Vue项目接入百度地图,更改地图主题色

    接入流程: 1: 在Vue创建的项目里找到index.html的文件,在index.html文件里添加. <script type="text/javascript" src ...

  4. 掌握Rabbitmq几个重要概念,从一条消息说起

    RabbitMQ 是功能强大的开源消息代理.根据官网称:也是使用量最广泛的消息队列.就像他的口号"Messaging that just works",开箱即用使用简单,支持多种消 ...

  5. nodejs实现公众号服务URL绑定验证,nodejs实现公众号关注并回发送一条消息,以及关注之后的聊天自动回复消息

    首先关注公众号的时候,公众号会发送一条 post 请求到 nodejs 服务器,这条消息是 xml 数据类型,这里就用到 xml 解析,demo 里用的是 fast-xml-parser@3.12.1 ...

  6. 地图统计_博客 城市访问量统计并且通过Echarts+百度地图展示

    本篇讲解一下 如何在Vue 中使用 Echarts + 百度地图 统计 博客访问量 并且通过QQWry 解析 ip 地址 利用Echarts 展示出来 效果图如下: 1.纯真Ip地址库 QQWry 这 ...

  7. 基于ECharts+百度地图开发散点扩散图

    基于ECharts+百度地图开发散点扩散图 用ECharts和百度地图,开发散点扩散图,显示TOP5的点. 1.引入Echarts3.2.3 js文件 下载地址为:http://echarts.bai ...

  8. 数据视化Echarts+百度地图API实现市县区级下钻

    开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是 ...

  9. Vue+Echarts+百度地图 小例子

    刚学完Echarts后,看到一些官方例子,粘贴代码下来却实现不了相应的效果,经过一番了解,发现还要引入百度地图,记录详细过程如下. 1.安装echarts(使用3.x,4.x) npm install ...

最新文章

  1. 第五次作业:四则运算之升级
  2. OpenGL编译错误的解决
  3. ebs查看服务状态_浅析AWS KMS密钥管理服务
  4. js中使用camel框架_使用Fabric8在Kubernetes中使用Camel和CDI
  5. socket抓包_64、抓包分析tcp与udp
  6. CSS3的radial-gradient(径向渐变)
  7. NG Ng-template(模板元素)
  8. c语言分治算法之归并排序,分治算法之归并排序
  9. websocket有没有可能取代ajax
  10. 一文理解 pytorch 拟合网络的过程
  11. ARM汇编指令集与机器码
  12. ★RFC标准库_目录链接
  13. wan端口未连接怎么弄_路由器WAN口未连接怎么解决?
  14. PCIe系列专题之一:PCIe技术概述
  15. Java工厂方法---Factory Method
  16. Java GC 介绍
  17. 计算机共享文件打不开怎么办,能共享到文件夹但打不开共享文件怎么办
  18. 健康大讲堂—凡膳皆药 寓医于食
  19. 司铭宇老师谈大客户销售技巧之如何做好大客户营销
  20. 给一个数,判断它是否是素数(质数) 质数:一个大于1的自然数只能被1和它本身整除...

热门文章

  1. 模仿微信聊天时间展示
  2. 简单粗暴提升yolov5小目标检测能力
  3. Hadoop入门教程
  4. java程序员跳槽频率_为什么程序员跳槽的频率降低了?
  5. Q4净亏损同比收窄30.5% Dropbox距离盈利只差一步之遥?
  6. Java面试宝典2010版
  7. 超过500万海量数据怎样处理
  8. POI及EasyExcel-读写示例
  9. ARM 汇编指令对应的机器码和条件码
  10. NetOffice - MS Office in .NET