<map>组件在uni-app的APP端无法获取中心坐标

<map>组件在uni-app的APP端无法获取中心坐标

开发环境 版本号 项目创建方式
Windows 24H2 HBuilderX
Android 9.0

示例代码:

onReady:function(){  
    this.mapCtx= uni.createMapContext("myMap",this);  
    this.mapCtx.getCenterLocation({  
        success:(res) => {  
            console.log(res)  
        }  
    })  
}

组件内容:

<map  
    id="myMap"  
    ref="myMap"  
    theme="normal"  
    style="width: 100%; height: 400rpx; border-radius: 20rpx; overflow: hidden"  
    show-location  
    enable-overlooking="false"
    scale="13"
    latitude="34"
    longitude="100"
>
</map>

操作步骤:

在vue文件中设置map组件,然后获取中心坐标

预期结果:

{
"latitude": 34,
"longitude": 100,
"errMsg": "getCenterLocation:ok"
}

实际结果:

{}

bug描述:

使用地图组件getCenterLocation获取中心坐标时,H5可正常获取,APP返回为空


更多关于<map>组件在uni-app的APP端无法获取中心坐标的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于<map>组件在uni-app的APP端无法获取中心坐标的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app在APP端的兼容性问题。getCenterLocation方法在APP端确实存在返回空对象的情况,特别是在地图初始化后立即调用时。

解决方案:

  1. 添加延迟获取:
onReady:function(){
    this.mapCtx = uni.createMapContext("myMap",this);
    setTimeout(() => {
        this.mapCtx.getCenterLocation({
            success:(res) => {
                console.log(res)
            }
        })
    }, 500)
}
  1. 或者使用@regionchange事件触发后再获取:
<map @regionchange="handleRegionChange">
handleRegionChange(){
    this.mapCtx.getCenterLocation({
        success:(res) => {
            console.log(res)
        }
    })
}
回到顶部