echarts地图贴图 图片不能完整填充整个地图

起因:甲方想 不占资源+有点击事件+有三维效果;果断使用echarts。甲方对echarts做的三维效果不满意,想要展示的行政区划中有地形起伏,只能用图片。

一、直接使用图片纹理

和这个博主一样使用图片贴图。
echarts的展示区域地图,添加纹理图片_echarts地图添加图片_一介青烟小生的博客-CSDN博客

遇到的问题:但是在一个分辨率下将图片调的刚刚好填充地图后,缩放浏览器或者改变分辨率大小,地图就会出现空白部分。

原因:echaerts注册的地图会随着分辨率缩放而自动适配,但是图片的大小没有跟随分辨率缩放而缩放,我们使用的图片多大,在页面上图片就多大尺寸。

想到的解决方法:添加监听事件,监听分辨率,随着分辨率缩放动态设置图片的尺寸。


问题!!!效果还是不好!!!还是不能完全填充满行政区划。

二、svg

echarts 地图添加纹理图片_echarts地图纹理_饭盒尽头的GIS的博客-CSDN博客

 即官网(Examples - Apache ECharts)中地理坐标地图标注(svg)的几个示例。

三、自己制作svg文件

我是使用的MasterGo软件为了图片和面能贴合,大家一定要在一开始就规定好尺寸大小。

以下是演示。

1、背景图

1)找到一张图片拖进中间的内容区。导出成svg图片。

2)双击打开后,右击-->查看网页源代码,找到以<image>开头的这一串,这就是我们需要的背景图。

2、行政区划

1)我在EasyMap(EasyMap)下载。我以江苏省为例,如下图选择进行下载。

2)在QGIS打开,新建布局,导出为svg文件。

QGIS导出SVG

3)将svg文件拖进MasterGo中,删除不需要的内容,保留需要的内容,再将组导出为svg。

删除不必要空白内容

4)双击打开后,右击-->检查,打开控制台。点开<g>...</g>可以看到两个<path>,分别是填充面和描边线(我的区分方式是根据“fill”里的颜色判断<--好傻)。

我需要的是面,就复制面的那一层<path...></path>

5)需要在<path>标签里添加name属性(要唯一),点击事件才生效。

像这样<path name="ceshi"······></path>

3、最终svg文件

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">

<image····>
<path····>
<path····>

</svg>

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!要在 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>`)用于渲染地图。 希望对您有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值