Use el método onLocationChange para monitorear continuamente la dirección y decidir si usar la latitud y la longitud de este posicionamiento de acuerdo con el campo de precisión de posicionamiento.
7. Adquisición relativamente precisa de direcciones de latitud y longitud
1. Registre una cuenta
Solo ingresa la información
Servicios de ubicación de Tencent: basados en la ecología, conectando con el futuro
2. Crear aplicación y clave
1. Ingresa a la consola
2. Crea una aplicación
3. Crear clave
Habilite el producto, verifique WebServiceAPI y el subprograma WeChat, y complete la información correspondiente.
3. Inicie sesión en el backstage de la plataforma pública de WeChat
Agregar solicitud de nombre de dominio legal: https://apis.map.qq.com
Gestión de desarrollo - Configuración de desarrollo - Nombre de dominio del servidor - Modificar
4. Descargue el SDK de JavaScript del subprograma WeChat
Después de descargarlo, póngalo en su propio proyecto.
WeChat Mini Programa JavaScript SDK | Servicios de ubicación de Tencent
Cinco, implementación de código
var QQMap = require('../../js_sdk/qqmap-wx-jssdk.min.js') // SDK放置的路径
var qqmapsdk = new QQMap({
key: '**************' // 自己的Key
});
6. En general, obtenga la dirección de latitud y longitud.
En lugares más prósperos, esto suele ser suficiente.
wx.getLocation({
type: 'wgs84',
success: res => {
console.log(res); //获取到经纬度值
qqmapsdk.reverseGeocoder({ // 根据经纬度转化为地址
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: res => {
console.log(res);
}
})
}
});
7. Adquisición relativamente precisa de direcciones de latitud y longitud
1. Obtenga permiso para monitorear la ubicación
uni.authorize({
scope: 'scope.userLocation',
success(res) {
console.log(res);
}
})
2. Activa el monitoreo de ubicación
wx.startLocationUpdate({
success: res => {
console.log(res);
},
fail: res => {
console.log(res);
//在这里处理开启失败的业务逻辑
}
})
3. Supervise los cambios de ubicación geográfica en tiempo real
let index = 0;
const _locationChangeFn = function(res) {
console.log('location change', res)
index++;
//res.accuracy 代表定位精度, 这里根据定位精度和定位次数进行一个综合判断,根据用户在当前页面的停留时间进行相应的修改
if (index > 10 || (res.accuracy < 35 && index > 5)) {
wx.offLocationChange();
wx.stopLocationUpdate();
qqmapsdk.reverseGeocoder({// 根据经纬度转化为地址
location: {
//纬度
latitude: res.latitude,
//经度
longitude: res.longitude
},
success: function(res1) {
console.log(res1.result);
},
fail: function(res1) {
console.log(res1);
}
})
}
}
//监听实时地理位置变化事件
wx.onLocationChange(_locationChangeFn)
Las direcciones ubicadas de esta manera pueden ser similares, pero la latitud y la longitud son más precisas que las que se obtienen directamente con getLocation.