1***@qq.com
1***@qq.com
  • 发布:2020-02-25 15:39
  • 更新:2020-12-14 15:51
  • 阅读:1319

【报Bug】hbuilderX2.6.0 新版本 获取地图对象后调用地图对象函数无法触发回调

分类:HBuilderX

详细问题描述

近几日更新的HbuildX2.6.0 正式版 调用地图组件时 获取到创建的地图后 调用地图对象的函数 无法触发回调函数如getCenterLocation()及moveToLocation(),没有报找不到函数,也没有触发success,fail,complete中的任意函数

[步骤]
进入页面,获取当前位置,设置中心点创建地图,获取地图对象,拖动地图,触发拖动函数重新获取地图中心点(获取中心点失效),点击定位按钮返回当前定位位置(失效)
[结果]
获取中心点失效,移动地图函数失效

下图为2.6.3 -alpha 及 2.6.0正式版

[期望]
成功获取地图中心点经纬度,成功移回至定位中心

下图为2.5.1正式版

IDE运行环境说明

HBuilderX 2.6.0 正式版及HBuilderX 2.5.0 alpha 有bug
HBuilderX 2.6.0 正式版之前没有此bug

uni-app运行环境说明

运行h5微信服务号内网页

在开发者工具及所有手机端表现一致,都有此bug

App运行环境说明

微信开发者工具,魅族16th,iPhone6,

附件

                       <map  
            id="myMap"  
            :latitude="point.latitude"   
            :longitude="point.longitude"   
            :scale="mapScale"   
            :enable-zoom="enable"   
            :markers="markers"  
            @regionchange="regionchange"  
            @markertap="callouttap"  
            @callouttap="callouttap"  
            show-location="false"  
            ></map>  
// 位置变化  
            regionchange: function (e) {  
                if (e['type'] == 'end') {  
                    console.log(this.$data.mapCtx);//已正常触发并获取到地图对象  
                    this.$data.mapCtx.getCenterLocation({  
                        success: res => {  
                            that.point = {  
                                latitude: res.latitude,  
                                longitude: res.longitude  
                            }  
                            console.log(res);  
                            // 位置变化刷新网点  
                            that.getSite()  
                        },  
                        fail:err =>{  
                            console.log('err',err);  
                        },  
                        complete:mes =>{  
                            console.log('mes',mes);  
                        }  
                    })  
                }  
            },  
// 定位到用户当前位置  
            userlocation(){  
                console.log(this.$data.mapCtx);  
                that.point=that.nowPoint  
                this.$data.mapCtx.moveToLocation()  
            },  
onLoad(){  
this.$data.mapCtx = uni.createMapContext("myMap");  
}

联系方式

[QQ]1259304921 微信同

问题补充

2020-02-25 15:39 负责人:无 分享
已邀请:
1***@163.com

1***@163.com - 逐渐迷失自我的程序员,直到找到方向后才开始崭露头角

请问解决了吗

  • 1***@qq.com (作者)

    目前并没有解决..官方没回应,建议下载2.5.1版本..

    2020-03-06 15:20

吖蛋黄

吖蛋黄

遇到一样的问题,请问解决了吗

  • 1***@qq.com (作者)

    目前并没有解决..官方没回应,建议下载2.5.1版本..

    2020-03-06 15:20

DCloud_Android_ST

DCloud_Android_ST

此问题已在HBuilderX2.6.3+版本修复

  • 1***@qq.com (作者)

    确定修复了吗? 我用X2.6.3 -alpha 编译后依然无效

    2020-03-09 16:46

  • 1***@qq.com (作者)

    详见图片更新

    2020-03-09 16:47

  • l***@gmail.com

    2.6.5正式版这个问题依然存在

    2020-03-16 20:55

  • d***@163.com

    2.6.6.20200320-alpha此问题依然存在

    2020-03-25 13:41

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

验证下面代码

<template>  
    <view class="content">  
        <map id="map1"></map>  
        <button @click="test">Test</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                title: 'Hello'  
            }  
        },  
        onReady() {  
            this.map = uni.createMapContext("map1", this);  
        },  
        methods: {  
            test() {  
                this.map.getCenterLocation({  
                    success:(res) => {  
                        console.log(res);  
                    }  
                })  
            }  
        }  
    }  
</script>  
8***@qq.com

8***@qq.com - 奔奔

我的最新版2.6.4也不可以,,见我帖子

l***@gmail.com

l***@gmail.com

最新版2.6.5也不可以

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

今天发布 2.6.6 修复所有平台问题

  • 吖蛋黄

    还没发布吗?

    2020-03-19 09:12

  • d***@163.com

    2.6.6.20200320-alpha此问题依然存在

    2020-03-25 13:41

  • DCloud_uni-ad_HDX

    回复 d***@163.com: 贴段代码

    2020-03-25 19:34

  • d***@163.com

    回复 DCloud_uni-ad_HDX: that.map.moveToLocation({

    latitude: res.latitude, //纬度

    longitude: res.longitude, //经度

    success: function () {

    console.log("成功将地图中心移到定位点");

    }

    });

    上面的log打不出来。然后that.map.getCenterLocation是可以用的。以及回退到2.5.1就可以用了

    2020-03-26 15:34

  • DCloud_uni-ad_HDX

    这个问题是文档有误导致升级V3时没有实现,下版补上

    2020-03-26 16:06

  • d***@163.com

    回复 DCloud_uni-ad_HDX: 你好,下载了最新的2.6.7.20200326-alpha,"成功将地图中心移到定位点"这句话还是打不出来……

    2020-03-30 19:43

  • 1***@qq.com (作者)

    又过了3个月,公司我都换了一个,这个问题貌似还没好。。。h5端依然有......

    2020-07-02 14:33

掌柜的

掌柜的

快到年底了 竟然还没解决. 又回头看了看微信小程序的官方文档, 直接从handleRegionChange里面的detail.centerLocation拿就行了. 完全没必要再调用getCenterLocation. 都不知道咋封装的. 生态看样子完全交给社区了

该问题目前已经被锁定, 无法添加新回复