收藏
回答

小程序 map组件显示问题

创建地图对象后能在 苹果手机上显示地图。在安卓手机上无法显示的问题

回答关注问题邀请回答
收藏

4 个回答

  • 不焦
    不焦
    2021-06-01

    出现定位到非洲的根本原因在于:地图定位在非洲的原因在于地图的latitude和longitude值为0。

    尝试过两种解决方法:

    方法一:

    1.在onload中使用wx.createMapContext获取 Mapcontext 对象;

    2.使用Mapcontext.getCenterLocation方法获取目前地图中心经纬度坐标;

    在手机调试中发现,地图定位在非洲的原因在于地图的latitude和longitude值为0。

    3.判断如果返回值res对象中latitude==0,或者longitude==0,就重新setData经纬度。

    经尝试此方法可以解决地图定位在非洲的问题,但是有点不完美的地方,就是手机上有时会先出现定位在非洲,1秒左右setData成功后地图重新显示为指定的中心点。

    onload:function(){
       this.mapCtx = wx.createMapContext('guidingMap');
       this.mapCtx.getCenterLocation({
                    successfunction (res{
                    if (res.latitude == 0 || res.longitude == 0) {
                        util.get(`${that.data.baseURL}${url}`)
                            .then(mapMetaData => {
                                that.setData({
                                    latitude: mapMetaData.map.latitude,
                                    longitude: mapMetaData.map.longitude,
                                });
                            })
                            .then(() => {
                                console.log(that.data.longitude + '    ' + that.data.latitude);
                            });
                    }
                },
            });
      }
    
    
    2021-06-01
    有用
    回复 1
    • 不焦
      不焦
      2021-06-01
      方法二:在wxml中对map组件添加wx:if="{{ifshow}}",默认ifshow设置为false,在数据请求完合适的位置,setData({ifshow:true})。此方法可以完美解决,缺点是数据量大、url请求过多时地图加载缓慢,建议可以加个loading效果。
      2021-06-01
      回复
  • 5k8_🏃จุ๊บ
    5k8_🏃จุ๊บ
    2017-10-23

    安卓手机我试了几个都有这个问题,而且点击地图打开内置地图也是有问题的 安卓手机 苹果手机没问题

    2017-10-23
    有用
    回复
  • iced tea
    iced tea
    2017-10-17

    获取位置成功

    2017-10-17
    有用
    回复
  • iced tea
    iced tea
    2017-10-17


    这是代码,就是创建一个地图组件对象,然后回去位置成功后移动到当前位置,手机系统的小米5,苹果手机能一下子定位到

    2017-10-17
    有用
    回复
登录 后发表内容