echart地图实现自定义贴图标注

echart地图实现自定义贴图标注

大二有幸参与了公司项目开发, 和小伙伴做一个监控学校疫情的系统,在地图上展示学校打卡点,打卡等信息。功能完成后,上级又给加了一个新需求,要求追踪某个学生去过的地点并用自定义图案标注出来,emmmm在翻了好久的api后总算找到了方法,(本来就是后端人员,但是没办法都得自己干,第一次接触这种,官方api我一开始看蒙了hh。)这里码一下,

贴下核心代码:

series: [
									{
										 type: 'custom',//配置显示方式为用户自定义
										 name: '疫情扫码打卡点',
					                    coordinateSystem: 'bmap',//使用百度地图作为地图
					                    itemStyle: {
					                        normal: {
					                            color: '#46bee9'
					                        }
					                    },
										symbolSize:	30 ,
										renderItem: function (params, api) {//具体实现自定义图标的方法
											
											let numbers = myData[params.dataIndex].value[2];
											let imgPath ="";
											let textStr;
											if(trance){
												textStr = "                                  "+myData[params.dataIndex].name;
											}else textStr = "                                  "+myData[params.dataIndex].name+" : "+myData[params.dataIndex].value[2]+" 人";
//											/if(myData[params.dataIndex].value[2] == -1){
//												textStr = "                                  "+myData[params.dataIndex].name;
//											}else textStr = "                                  "+myData[params.dataIndex].name+" : "+myData[params.dataIndex].value[2]+" 人";
											if(numbers >0 ){
												imgPath ="img/location-user.png";
												return {
						                            type: 'image' ,
						                            style: {
						                            	textFill:'#df8321',
						                            	image: imgPath,
						                            	x:api.coord([myData[params.dataIndex].value[0],myData[params.dataIndex].value[1]])[0],//必须要转换坐标,否则会相对于整个画布定位
						                                y:api.coord([myData[params.dataIndex].value[0],myData[params.dataIndex].value[1]])[1],
						                                width:30,
														height:30,
														name:myData[params.dataIndex].name,
														text:textStr	//图标边上的提示文字
						                            }
					                        	}
											}else return null;
											
					                    },
					                    markPoint: {
					                    	label:{ //标签样式设置
					                               normal:{
					                                   show:true,
					                                   formatter:function(params){ //标签内容
					                                	   cosole.log("ASDDDD");
					                                       return  '疫情健康打卡点:<br/>'+params.data.name+'<br/> 扫码人数 :'+params.data.value[2]+'(人)';
					                                   }
					                               }
					                        }
					                    }
					                    ,
					                    data:myData
									}
									
								]

在这里插入图片描述如上实现了贴图,当然还支持其他方式,具体官方api都写的很清楚了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值