已知经纬度自动在地图上标点

需求

通过一个按钮,打开地图拿到这个显示的位置的经纬度,在地图上找到这个位置
在这里插入图片描述

在这里插入图片描述

给按钮绑定事件

这个事件需要打开对话框,并且拿到经纬度

<el-button type="primary" size="mini" plain @click="mapClick(projectData.lonLat)">查看位置</el-button>

实现这个方法

mapClick(lonLat){
      let num1 = new Array()
      num1 = lonLat.split(',')
      this.mapDialogVisible = true
      //打印出来的黑色数字是字符串,蓝色的才是数字
      const longitude = Number(num1[0])//经度
      const latitude = Number(num1[1])//纬度
      // 定义点标记对象
      this.$nextTick(() => {
        this.initMap(longitude,latitude)
      })
    }

这里进行解释一下:lonLat就是那个传过来的经纬度,在这里需要将他拆分字符串,用到了split这个方法,是js里的; this.mapDialogVisible = true这个就是打开对话框,再将拆分的字符串转化成数字赋值给longitude和latitude,那个this.initMap就是实例化这个地图

实例化地图组件

如果不实例化地图的话,是展示不出地图的,
在上面写那个方法的时候我们将经纬度传过来了,所以在这里直接lng,lat进行接收,记得在return中初始化这个地图
在这里插入图片描述
使这个初始化地图的中心点设置为传过来的经纬度,这样就可以随着你经纬度的不同,展示的地图的位置也会随之改变,下面那个projectMapMarker就是一个标点的marker,官网里是有说明的,高德地图点标记官网
在这里插入图片描述

initMap(lng,lat) {
      this.mapLocal = new AMap.Map("container", {
        resizeEnable: true,
        //禁止拖动地图
        // dragEnable: false,
        //禁止放大地图
        // zoomEnable:false,
        center: [lng,lat],
        zoom: 16,//地图显示的缩放级别
      })
      const projectMapMarker =  new AMap.Marker({
        position: [lng, lat],
        icon: 'https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
      })
      // 添加点标记在地图上
      projectMapMarker.setMap(this.mapLocal)
    },

最后是通过官网的一个setMap方法将我们建立的点,标记在地图上,这样就做好了这样的效果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小莉爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值