深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
3. 在getlocation.vue组件里封装具体逻辑代码
3.1 引入腾讯js文件 初始化 判断当前环境并且判断用户是否授权定位权限,创建腾讯地图实例,后续方便调用
import './geolocation.min.js'
init() {
if (origin.indexOf('https') === -1) {
uni.hideLoading()
uni.showToast({
title: '当前环境无法获取定位信息',
icon: 'none',
duration: 2000,
});
throw '请在 https 环境中使用本插件'
}
if (!navigator || !navigator.geolocation) {
uni.hideLoading()
uni.showToast({
title: '当前环境无法获取定位信息',
icon: 'none',
duration: 2000,
});
throw '地理位置服务不可用'
}
const options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
return new Promise((resolve, rejace) => {
navigator.geolocation.getCurrentPosition((res) => {
this.myMap = new qq.maps.Geolocation("你的key",
"地图标点");
resolve(this)
}, rejace, options)
})
},
code 1 表示用户拒绝授权 code 3 未获取到地址信息,可能是设备没有开启定位服务或者系统没有给浏览器定位权限
【H5】 经纬度位置获取navigator.geolocation.getCurrentPosition
navigator.geolocation.getCurrentPosition(function(){
})
参数说明:
经度 : coords.longitude
纬度 : coords.latitude
准确度 : coords.accuracy
海拔 : coords.altitude
海拔准确度 : coords.altitudeAcuracy
行进方向 : coords.heading
地面速度 : coords.speed
请求的时间: new Date(position.timestamp)
3.2封装getLocation获取位置信息的方法
getLocation() {
return new Promise((resolve, reject) => {
this.myMap.getLocation(res => {
resolve(res)
}, err => {
reject(err)
})
})
},
4.使用方法
<get_location ref='muLocation'></get_location>
import getLocation from '@/componentss/getlocation.vue'
components: {
getLocation,
}
locationRef: null,
onLoad() {
//初始化权限,提示用户授权以及重新获取权限
this.$nextTick(() => {
uni.showLoading({
title: '定位组件加载中...',
mask: true
})
this.$refs.muLocation.init().then(location => {
this.locationRef = location
this.getLocationl();
uni.hideLoading()
}, err => {
uni.hideLoading()
if (err.code === 1) {
uni.showModal({
title: '获取定位权限失败',
content: '你拒绝了位置授权服务。请允许当前页面获取定位授权,后刷新页面。'
})
} else {
uni.showModal({
title: '获取定位权限失败',
content: '请确定手机定位已打开,并且当前浏览器允许获取定位,开启后请刷新页面。'
})
}
})
})
},
methods: {
// 获取精准定位
getLocationl() {
let that = this
if (!that.locationRef) return uni.showToast({
title: '未授权位置获取',
icon: 'none'
})
that.locationRef.getLocation()
.then(res => {
**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
![](https://i-blog.csdnimg.cn/blog_migrate/1e210328c1ebf43f08d3b6c5f5c13b48.png)
![img](https://img-blog.csdnimg.cn/img_convert/e7b4c437ee320dcac550c64c0ed41e4c.png)
![img](https://img-blog.csdnimg.cn/img_convert/e5a982b2b4ebb276a903acc24628045d.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**
了95%以上鸿蒙开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**