当前位置:首页 > uni-app

uniapp定位距离

2026-03-05 02:37:45uni-app

uniapp获取定位距离的方法

在uniapp中计算两点之间的定位距离,可以通过H5或小程序原生API获取经纬度后,使用Haversine公式计算。以下是具体实现方式:

获取当前位置经纬度 使用uniapp的uni.getLocation方法获取当前位置坐标:

uni.getLocation({
  type: 'wgs84',
  success: function (res) {
    const currentLat = res.latitude
    const currentLng = res.longitude
    // 获取到当前位置坐标后,可与其他坐标计算距离
  }
})

Haversine距离计算公式 根据两点经纬度计算直线距离(单位:米):

function getDistance(lat1, lng1, lat2, lng2) {
  const radLat1 = lat1 * Math.PI / 180.0
  const radLat2 = lat2 * Math.PI / 180.0
  const a = radLat1 - radLat2
  const b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0
  let distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + 
              Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)))
  distance = distance * 6378.137 * 1000
  return Math.round(distance)
}

计算与目标位置距离 假设目标位置坐标为targetLat, targetLng

const distance = getDistance(currentLat, currentLng, targetLat, targetLng)
console.log('两点距离:', distance, '米')

注意事项

  • 需要配置manifest.json中的定位权限
  • iOS需在隐私描述中添加定位用途说明
  • 高精度定位需要GPS支持,室内可能误差较大
  • 部分国产安卓机需要动态申请定位权限

扩展方案

对于需要持续计算距离的场景(如运动轨迹),建议:

uniapp定位距离

  • 使用uni.onLocationChange监听位置变化
  • 加入防抖处理避免频繁计算
  • 使用地图组件的测距功能(如高德/百度地图SDK)可获得更高精度

标签: 距离uniapp
分享给朋友:

相关文章

uniapp开发电视应用

uniapp开发电视应用

开发环境准备 确保已安装HBuilderX最新版本,这是uniapp官方推荐的开发工具。安装Node.js环境,用于依赖管理和打包构建。准备Android Studio或Xcode用于调试和打包TV应…

uniapp 数据

uniapp 数据

uniapp 数据管理方法 本地存储 使用 uni.setStorageSync 和 uni.getStorageSync 进行本地数据持久化存储。适合保存用户偏好设置或小型数据。 // 存储数…

uniapp工程

uniapp工程

uniapp工程简介 uniapp是一个基于Vue.js的跨平台开发框架,允许开发者使用一套代码同时生成iOS、Android、H5以及小程序应用。它通过条件编译和平台特性适配,实现多端兼容。 创建…

uniapp全局校验

uniapp全局校验

uniapp全局校验的实现方法 在uniapp中实现全局校验可以通过多种方式,主要包括拦截器、全局混入和自定义指令等方法。 使用请求拦截器进行校验 在main.js中配置请求拦截器,对所有请求进行统…

uniapp 滑动条

uniapp 滑动条

uniapp 滑动条实现方法 在uniapp中实现滑动条可以通过内置组件或第三方插件完成。以下是几种常见方法: 使用slider组件 uniapp内置了slider组件,可直接实现基础滑动条…

uniapp滑动图标

uniapp滑动图标

uniapp滑动图标的实现方法 使用swiper组件实现横向滑动图标 在uniapp中可以通过swiper组件实现图标的横向滑动效果。以下是一个基础示例代码: <template>…