Uamy
Uamy
  • 发布:2024-02-21 10:40
  • 更新:2024-03-16 14:35
  • 阅读:1141

急~~~~微信小程序开发 uni.getLocation定位不准确

分类:uni-app

微信小程序开发时候使用uni.getLocation获取定位距离偏差几十公里 已经开启高精度 麻烦问下是什么问题 急

uni.getLocation({  
                type: 'gcj02',  
                isHighAccuracy: true,  
                success: (res) => {  
                    console.log(`${res.longitude},${res.latitude}`);  
                    resolve(`${res.longitude},${res.latitude}`)  
                },  
            })
2024-02-21 10:40 负责人:无 分享
已邀请:
JXWang

JXWang

是在真机上定位不准还是在开发者工具模拟器上呢

  • JXWang

    在开发者工具使用uni.getlocation方法使用的是IP定位,定位有偏差是正常的。type默认为 wgs84 返回 gps 坐标,gcj02 返回国测局坐标,type不同也会导致经纬度不一样

    2024-02-21 11:20

  • Uamy (作者)

    是真机定位不准确,相差的距离有点大,而且在30楼和在1楼的定位坐标偏差也很大

    2024-02-21 14:24

  • JXWang

    回复 Uamy: 用那个手机的地图软件看一下定位准吗,是否有不同楼层定位坐标偏差大的问题

    2024-02-21 14:40

  • Uamy (作者)

    回复 JXWang: 手机地图软件的定位和uni.getLocation获取的定位有偏差,uni.getLocation获取到的坐标点用坐标拾取器查看,和地图软件的定位有偏差 ,而且有时候准有时候不准

    2024-02-21 14:55

  • JXWang

    坐标拾取器是用的什么,是否有在线地址?

    2024-02-21 15:05

  • Uamy (作者)

    回复 JXWang: 就是高德地图的坐标拾取器,可以查询坐标点在地图的位置,https://lbs.amap.com/tools/picker 这个是网址

    2024-02-21 15:10

  • JXWang

    回复 Uamy:我试了一下,坐标的结果和我当前的位置是能对上的

    2024-02-21 15:23

  • Uamy (作者)

    回复 JXWang: 还是不行 就是uni.getLocation获取到的坐标和我使用高德地图、腾讯地图软件等等的个人坐标偏差太大


    uni.getLocation({

    type: 'wgs84',

    isHighAccuracy: true,

    highAccuracyExpireTime: 5000,

    success: (res) => {

    // console.log(res);

    // console.log(${res.longitude},${res.latitude});

    resolve(res)

    },

    fail: (err) => {

    reject(err)

    }


            })  

    2024-02-22 17:12

JXWang

JXWang

您可以配合map组件,看一下定位的位置是否就是你当前的位置,如果地图的正中间有一个绿色的定位标识点,并且位置就是您所在的位置,那就说明拿到的经纬度没问题。

    <template>  
        <map :latitude="latitude" :longitude="longitude" style="width: 100vw; height: 100vh;" :show-location="true"></map>  
    </template>  

    <script>  
        export default {  
            data() {  
                return {  
                    latitude: '',  
                    longitude: ''  
                };  
            },  
            mounted() {  
                uni.getLocation({  
                    type: 'gcj02',  
                    isHighAccuracy: true,  
                    success: (res) => {  
                        console.log(res);  
                        this.latitude = res?.latitude;  
                        this.longitude = res.longitude;  
                    },  
                    fail(e) {  
                        console.log(e);  
                    }  
                })  
            },  
        };  
    </script>  

    <style>  

    </style>
  • Uamy (作者)

    好的 感谢 我试一下

    2024-02-21 15:38

y***@jiayuxiangmei.com

y***@jiayuxiangmei.com

感觉你就是坐标系没有和地图一致

要回复问题请先登录注册