vue中利用百度地图API显示两点间的距离

本文介绍如何使用百度地图API结合Vue.js实现店铺与当前位置之间的距离测量。具体包括通过浏览器获取用户地理位置坐标,利用BMap API计算两点间距离,并在前端页面上展示各店铺到用户的直线距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 先来看一下,要实现的效果:每个店铺的经纬度已经通过服务器获得,通过浏览器定位可以获得我的经纬度,然后可以通过百度地图API提供方法测量距离。


在vue data 中已经定义了一个数组list,list中存放的店铺信息的对象,包含经纬度信息。html结构代码如下,通过v-for来遍历显示list中的信息。getDistance()是vue methods定义的方法,把item这个对象参数传过去,getDistance()return 返回两个点的距离。

<li v-for="item in list">
  <span>{{getDistance(item)}}km</span>
</li>

通过浏览器获取我的经纬度,代码如下。这个方法在created或者mounted中调用都行,经纬度数据存为pointA

// 通过浏览器定位获得我的经纬度
getMyPoint () {
  var self = this
  var geolocation = new BMap.Geolocation()
  geolocation.getCurrentPosition(function (res) {
    self.pointA = new BMap.Point(res.point.lng, res.point.lat)  // 通过浏览器获得我的经纬度
  })
},

getDistance()函数代码如下:

// 测量百度地图两个点间的距离
   getDistance (itemPoint) {
     var map = new BMap.Map('')
     var pointB = new BMap.Point(parseFloat(itemPoint.log), parseFloat(itemPoint.lat))  // 店铺的经纬度
     var distance = (map.getDistance(this.pointA, pointB) / 1000).toFixed(2) // 保留小数点后两位
     return distance
   }

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值