收藏
回答

腾讯地图插件根据官方方案无法初始化地图所需数据

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug 腾讯地图插件 客户端 iOS 7.0.3 2.6.1

- 当前 Bug 的表现(可附上截图)




- 预期表现(如图)









官方文档:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx5bc2ac602a747594&token=&lang=zh_CN#-

特殊说明:

注意:数据要在data中初始化,不要再onLoad中直接setData,因为onLoad中直接setData,properties的routeInfo的observer: function (newVal, oldVal),newVal接收不到参数,导致参数报错,之后可以通过其bind他事件setData更新routeInfo达到变更起终点参数的效果。


官方案例:

let plugin = requirePlugin("myPlugin")
let routeInfo = {
    startLat: 39.90469,    //起点纬度 选填
    startLng: 116.40717,    //起点经度 选填
    startName: "我的位置",   // 起点名称 选填
    endLat: 39.94055,    // 终点纬度必传
    endLng :116.43207,  //终点经度 必传
    endName:"来福士购物中心",  //终点名称 必传
    mode:“car”  //算路方式 选填
}

Page({
  data: {
    routeInfo: routeInfo
  }
})

这是官方的案例,需要写在外面,问题是这样,页面只会执行一次。

这边的数据是需要硬编码写死嘛??


我所需要的功能是动态的,导航的经纬度信息是根据用户所在位置的,按照官方这种描述,是永远无法实现了嘛?




最后一次编辑于  03-07
回答关注问题邀请回答
收藏

2 个回答

  • 女公子
    女公子
    03-07

    问题已经解决,采用 wx:if 语句,在数据没有赋值的时候地图不加载,数据一旦赋值,再显示地图。

    这样的话,可以在onload里面控制地图数据初始化。


    <block wx:if="{{routeInfo.endLat>0}}">
    <map-route   route-info="{{routeInfo}}"></map-route>
    </block>



    onLoad: function(options) {
       
         let routeInfo =  获取数据
      
        that.setData({
          routeInfo: {
            startLat: '',    //起点经度 选填
            startLng: '',    //起点纬度 选填
            startName: '',   // 起点名称 选填
            endLat: routeInfo.endLat,    // 终点经度必传
            endLng: routeInfo.endLng,  //终点纬度 必传
            endName: '测试'//终点名称 必传
            mode: "car"  //算路方式 选填
          }
        })


    03-07
    赞同
    回复
  • 拾忆
    拾忆
    03-07

    插件是只能使用不能修改的

    03-07
    赞同
    回复 3
    • 女公子
      女公子
      03-07

      是这个功能没办法实现嘛?

      我看到腾讯地图小程序是有类似功能的,但是他没有说怎么做到的,不知道是不是内部API

      03-07
      回复
    • 拾忆
      拾忆
      03-07回复女公子

      因为你用插件只能根据人家插件的要求传参数就可以了,自己有特殊需求就不要用插件,自己根据组件和API自己开发。

      03-07
      回复
    • 女公子
      女公子
      03-07回复拾忆

      地图导航功能自己开发?

      03-07
      回复