收藏
回答

在map组件里如何一键改变scale?

在使用map组件时,要实现用户手动缩放地图后,想一键调整到某个scale值(比如scale=3),这个要怎样实现?

btw,setdata scale没有反应。

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

2 个回答

  • 小康¹⁸
    小康¹⁸
    2021-12-31

    吧你代码贴出来,我试了一下可以的。

      <map id="myMapscale="{{mapScale}}"></map>

    data:{ mapScale:14,

      setMapScale: function (e) {

        this.setData({

          mapScale:25,

        });

      },


    2021-12-31
    有用 1
    回复 4
    • James国俊
      James国俊
      2021-12-31
      我发现了,是因为scale初始化的值是3,setdata又是3,所以没有改变。但是,如果用户手动缩放了地图,想把scale变回初始值3,这样的情况,该怎样实现呢?
      2021-12-31
      回复
    • 小康¹⁸
      小康¹⁸
      2021-12-31回复James国俊
      不用管用户手动如何缩放,当你setData的时候都会回到你设定的值。用户手动缩放对你setData没有影响
      2021-12-31
      回复
    • James国俊
      James国俊
      2021-12-31
      我试了,原来在开发者工具里面不行,真机上是ok的。谢谢你!
      2021-12-31
      回复
    • 小康¹⁸
      小康¹⁸
      2021-12-31回复James国俊
      你搞定了就好,不过我想说:我的开发工具也可以~
      2021-12-31
      回复
  • James国俊
    James国俊
    2021-12-31

      show_all(e){

        var t =this

        console.log('show_all')

        t.setData({scale:3})

      },


    <map 

      id="map

      subkey="HPRBZ-36ZCU-5P5VW-BFVPM-7YX3V-HMBWT"

      layer-style="2"

      longitude="{{my_longitude}}" 

      latitude="{{my_latitude}}" 

      scale="{{scale}}" 

      markers="{{markers}}"      

      enable-poi="{{false}}"

      show-location 

      style="width: 100%; height: 60vh;">

    </map>





      <cover-view bindtap="show_allclass="margin-left text-whitestyle="width: 20%;display:flex;flex-direction:row;justify-content:center;align-items:center;">

        <cover-view style="border: 1rpx white solid;border-radius: 20%;"> <cover-view style="margin: 5rpx;">全景</cover-view> </cover-view> 

      </cover-view>


    2021-12-31
    有用
    回复
登录 后发表内容