vue3项目中使用百度地图,自定义标注和文本标注

第一步引入百度地图

第二步页面直接使用

<template>

    <div class="homebox">

        <div class="mapp" ref="baiduRef"></div>

        <div class="content"></div>

    </div>

</template>



<script setup>

import { onMounted, onUnmounted, ref, reactive, toRefs } from 'vue'



import drugMarkerIcon from '@/assets/img/map_icon.png' // 引入自定义的标注图片

const props = defineProps({

    lng: {

        type: Number,

        default: () => 116.23920900925275,

    },

    lat: {

        type: Number,

        default: () => 39.89140052910413,

    },

//传入的文本标注内容

    title:{

        type:String

    }

})

let n = ref(props.lng)

let t = ref(props.lat)

const baiduRef = ref()

const map = ref()

const points = ref([{ lng: n, lat: t }])

const markers = ref([])

function initMap() {

    map.value = new BMap.Map(baiduRef.value) // 新建一个map地图实例

    map.value.centerAndZoom(new BMap.Point(points.value[0].lng, points.value[0].lat), 18)

    map.value.enableScrollWheelZoom(true) // 滚轮缩放



    var point = new BMap.Point(points.value[0].lng, points.value[0].lat)

    var myIcon = new BMap.Icon(drugMarkerIcon, new BMap.Size(31, 64))

    let marker = new BMap.Marker(point,{ icon: myIcon })

   

    // 将标注添加到地图中

    map.value.addOverlay(marker)



    //文本标注

    var opts = {

        position: new BMap.Point(points.value[0].lng, points.value[0].lat), // 指定文本标注所在的地理位置

        offset: new BMap.Size(-90, -90), // 设置文本偏移量

    }

    // 创建文本标注对象

    // var label = new BMap.Label('欢迎使用百度地图JSAPI GL版本', opts)

    var label = new BMap.Label(props.title, opts)

    // 自定义文本标注样式

    label.setStyle({

        color: '#000000',

        borderRadius: '8px',

        borderColor: '#fff',

        padding: '12px',

        fontSize: '16px',

        height: '22px',

        lineHeight: '22px',

        fontFamily: '微软雅黑',

        footWeight:'bold'

    })

    map.value.addOverlay(label)

}



onMounted(() => {

    initMap()

})



onUnmounted(() => {

    map.value = null // 销毁地图实例

})

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值