1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 百度地图自定义标注样式

百度地图自定义标注样式

时间:2023-03-05 10:45:24

相关推荐

百度地图自定义标注样式

实现效果图

标注样式的自定义

// 百度地图marker样式let icon1 = new BMap.Icon(require('../src/assets/nationMap/marker1.png'), new BMap.Size(20, 60), {//当标注显示在地图上时,其所指向的地理位置距离图标左上角各偏移10像素和36像素anchor: new BMap.Size(10, 36),// 设置图片偏移,类似于剪切图片的功能imageOffset: new BMap.Size(0, 0)})

通过new BMap.Size(20, 60)来限定标注的尺寸,这里我的标注是竖直的,我定义标注的宽度20px,高度60px,实际上我只用到来宽度来限制标注的尺寸,这里标注的宽度就是20px,由于高度60px比标注实际的高度要大,所以并不起作用

这里需要注意的地方就是

require('../src/assets/nationMap/marker1.png')

图片在Vue中需要用到require来获取

自己对于imageOffset: new BMap.Size(0, 0)的理解,当你的图片是一个大图的时候,意思就是说当你使用含有多个标注点样式的大图时,但是我们需要的只有一个标注点样式,这个时候我们就要用到剪切,imageOffset: new BMap.Size(100, 100)确定了剪切点的左上方的坐标,比如imageOffset: new BMap.Size(100, 100)对应于图片中就是margin-left:100pxmargin-top:100px

添加标注

// 添加单个标注// icon: this.GLOBAL.icon1,这里面的this.GLOBAL.icon1就是上面自己定义的标注样式markerFun: function (map, point) {let marker = new BMap.Marker(point, {icon: this.GLOBAL.icon1})map.addOverlay(marker)},// 添加多个标注multMarker: function () {for (let i = 0; i < this.siteList.length; i++) {// 创建坐标点let points = new BMap.Point(this.siteList[i].position.lng, this.siteList[i].position.lat)this.markerFun(this.GLOBAL.map, points)}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。