小程序更改地图缩放层级及经纬度后复原

在小程序中引入地图组件,有一个需求是移动缩放地图之后点击按钮回到初始状态,也就是页面进来的初始视角,当时觉得这不是很简单吗?当你移动缩放的时候更改绑定的经纬度的值和缩放的值,点击初始化则把绑定的经纬度、缩放值初始化一下不就行了,然而,并没有想象的那么简单就实现了。先说之前的代码

@regionChange是地图的拖动缩放的方法

uni.createMapContext('myMap').getCenterLocation是获取地图中心经纬度的方法

uni.createMapContext('myMap').getScale是获取地图缩放等级的方法

当时的想法是把latitude、longitude、scale这些值都放到regionChange方法改变时getCenterLocation、getScale方法里,当你改变绑定的经纬度则会改变,初始化的时候直接对latitude、longitude、scale赋值就可以了,然而直接赋值的时候经纬度都可以回到初始的视角但是缩放值并没有,在控制台中打印到scale在regionChange方法中多次改变值但是并没有改变到赋值的值,后续查了很多相似问题,也有开发者在小程序社区发出的提问说是setData等对scale改变,但是我这里还是不可以一键复位,然后忘记在哪里看到的一段代码复制进去,在复位、初始化的方法中加入了下边一段代码在开发者工具还不行,但是在真机调试中发现可以了。记录一下


this.mapCtx = uni.createMapContext("myMap")//myMap绑定地图的id
this.mapCtx.getScale({

            success: res => {

                this.scale = res.scale;

                this.$nextTick(() => {

                this.scale = 16

                        })

                    }

            })

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容