echarts地图贴图

想要实现地图贴图,看官方文档image属性:支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串。我以为跟之前一样的写法,现在页面创建一个img标签,再在image属性引入就可以了

<img id="xx" v-show="0" src="@/assets/images/large/xx.png" />

....
{
            map: this.mapName, // 第2层
            roam: false,
            zoom: 1.1,
            center: this.mapData[this.mapName].center,
            aspectScale: 1,
            itemStyle: {
              normal: {
                areaColor: {
                  image: document.getElementById('xx'), // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串
                  repeat: "repeat", // 是否平铺,可以是 'repeat-x', 'repeat-y', 'no-repeat'
                },
                color: "rgb(31,37,119)",
                borderColor: "#1865E1",
                borderWidth: 0,
              },
            },
....

结果首次不加载出来,要对地图做些事件例如下钻,就出来了,就很郁闷哪里出错了

 然后搜了搜解决办法,才发现是我写错了,图片正确的引入方法是import

import dot from '@/assets/images/large/xx.png'

...

itemStyle: {
              normal: {
                areaColor: {
                  image: dot, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串
                  repeat: "repeat", // 是否平铺,可以是 'repeat-x', 'repeat-y', 'no-repeat'
                },
                color: "rgb(31,37,119)",
                borderColor: "#1865E1",
                borderWidth: 0,
              },
            },
.....

问题解决了

注意:我的原图只是一条斜线,所以平铺显示的;如果不是需要平铺的图片,大小需要能够渲染充满整个地图容器,没有可以设置大小的属性。

/// 又写一个项目,地图贴图首次没加载出来,在原来引入图片import处又换种写法,如:

let mapBg = new Image()

mapBg.src = require('@/assets/images/screenImg/map_bg.png')

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您好!要在 ECharts 地图上贴贴图,您可以使用 ECharts 的自定义地图功能。以下是一个简单的示例代码演示如何在地图上添加贴: ```javascript //入必要的库和图 const echarts = requireecharts'); require('echarts/map/js/china'); // 引入中国地图 // 创建地图实例 const chart = echarts.init(document.getElementById('map')); // 自定义地图配置 const mapOption = { geo: { map: 'china', // 使用中国地图 roam: true, // 允许用户放大、缩小地图 zoom: 1.2, // 地图初始缩放比例 itemStyle: { // 地图区域样式 normal: { areaColor: '#f2f2f2', // 地图区域颜色 borderColor: '#999', // 地图边界线颜色 }, emphasis: { areaColor: '#ccc', // 鼠标悬停时的地图区域颜色 }, }, }, series: [ { type: 'map', map: 'china', label: { show: true, // 是否显示省份标签 color: '#000', // 省份标签颜色 }, data: [ // 省份数据,根据实际情况填写 { name: '广东', value: 100 }, { name: '北京', value: 50 }, // ... ], // 添加贴图 markPoint: { symbol: 'image://path/to/your/image.png', // 贴图路径 symbolSize: [20, 20], // 贴图大小 data: [ // 贴图的位置信息,根据实际情况填写 { name: '广州', value: [113.23, 23.16] }, { name: '北京', value: [116.40, 39.90] }, // ... ], }, }, ], }; // 渲染地图 chart.setOption(mapOption); ``` 您需要在代码中替换 `path/to/your/image.png` 为您自己的贴图路径,`[113.23, 23.16]` 和 `[116.40, 39.90]` 为贴图的位置信息。同时,您还可以根据需要调整其他地图样式和配置。 请确保已经正确引入 ECharts 库和中国地图,以及在 HTML 中有一个具有指定 ID 的元素(如 `<div id="map"></div>`)用于渲染地图。 希望对您有所帮助!如果还有其他问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值