收藏
回答

小程序地图中心如何平滑的移动到某个指定的位置?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 地图/马屁 客户端 7.0.3 2.7.4

两个思路都无法完成:

1.用moveToLocation()只能平滑地回到自己的定位

2.用动态更新map的经纬度参数的方法,会重绘地图,很僵硬,我想要平滑移动,如何实现


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

3 个回答

  • Mr Tiger
    Mr Tiger
    04-21

    这个问题卡了我很久,终于找到方法,就是用moveToLocation()这个方法就可以

    这就要不得不抱怨官方的文档写的真是很辣鸡,官方文档里在介绍这个方法的参数的时候,竟然忽略一个重要的参数,其实这个方法里除了可以传递经度和纬度,还可以传递一个时长参数duration

    测试可以用,就这么靠蒙的一个参数竟然是可以用的,对微信官方的开发文档真的是无语了!

    // 获取地图上下文
    const mapContext = wx.createMapContext('mapId');
    
    // 平滑移动地图的中心点
    mapContext.moveToLocation({
      latitude: 新的纬度,
      longitude: 新的经度,
      duration: 1000  // 移动的动画时长,单位毫秒
    });
    
    04-21
    有用 1
    回复 4
    • LLB
      LLB
      04-24
      设置没有效果啊
      04-24
      回复
    • Mr Tiger
      Mr Tiger
      发表于移动端
      04-24回复LLB
      亲测有效的,代码看一下
      04-24
      回复
    • LLB
      LLB
      04-25回复Mr Tiger
      04-25
      回复
    • LLB
      LLB
      04-25
      04-25
      回复
  • 哄哄
    哄哄
    2019-07-24

    依旧使用“动态更新map的经纬度参数的方法”,自己做一个过渡。

    比如 2 秒时间从1移动到100,更新 2 次,1->50->100

    2019-07-24
    有用
    回复 1
    • 李松锋
      李松锋
      2019-07-24
      一开始也是这么想的,刚才试了下,分了10次,效果还是一般,虽然总比直接闪现好
      2019-07-24
      回复
  • 李松锋
    李松锋
    2019-07-24


    就是点击了地图上这个图标,地图中心就会滑动到这个位置

    2019-07-24
    有用
    回复 5
    • 2020-06-09
      请问你这个功能是 点击图标然后把位置移动到地图中心吗?图标上面的信息框你是怎么做的?定位的吗?
      2020-06-09
      回复
    • 李松锋
      李松锋
      2020-06-09回复
      是的,当时是点击了之后移动到地图中心,然后定位的cover-view展示信息框,后来效果实在一般,产品妥协了,不再移到中心,信息框改成在屏幕底部显示
      2020-06-09
      回复
    • 2020-06-09回复李松锋
      对的 底部是最好的了 我现在也有这个需求,有问题就是 使用moveToLocation移动的时候不是在地图中心,还有这个信息框的位置在不同手机上会有偏移,就是离点的位置会不一样,你有遇到吗?
      2020-06-09
      回复
    • 李松锋
      李松锋
      2020-06-09回复
      moveToLocation不在中心好像没遇到过,我那时候做信息框位置的垂直方向是有一点的偏移的,具体真记不清了,因为最后也没采取这种方案
      2020-06-09
      回复
    • jack.tang
      jack.tang
      2021-07-19
      你这个自定义的callout边缘指示三角是图片吗?
      2021-07-19
      回复
登录 后发表内容