前言:在项目开发中,例如在h5页面中,嵌入第三方地图页面,此时有个定位功能无法定位,往往需要获取定位信息协助实现定位功能。
前提准备:获取定位信息,一定要在https的协议下,其次应用设置要允许获取定位,否则会出现获取定位失败的情况。
1、使用官网提供的API定位
mounted() {
this.getUniPositions();
},
methods: {
getUniPositions() {
uni.getLocation({
success: function(res) {
// 获取定位成功,res对象包含了定位信息
console.log('获取定位成功',res.latitude, res.longitude, res.address); // 纬度
// console.log(res.longitude); // 经度
// console.log(res.address); // 地址信息
// 获取到定位信息
var latitude = res.latitude;
var longitude = res.longitude;
// 处理定位信息
console.log('获取定位信息-latitude', latitude, 'longitude', longitude);
let frame = document.querySelectorAll('iframe')[0]?.contentWindow
frame.postMessage({x:longitude , y:latitude}, "*")
},
fail: function(err) {
// 获取定位失败,err对象包含了错误信息
console.log('获取定位失败',err);
}
});
},
}
2、使用JS中Window对象Navigator geolocation 属性
mounted() {
this.getPosition();
},
methods: {
getPosition() {
navigator.geolocation.getCurrentPosition(function(position) {
// 获取到定位信息
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
// 处理定位信息
console.log('定位信息-latitude', latitude, 'longitude', longitude);
let frame = document.querySelectorAll('iframe')[0]?.contentWindow
frame.postMessage({x:longitude , y:latitude}, "*")
}, function(error) {
// 定位失败
console.log('定位失败', error);
});
},
}