收藏
回答

行驶路径moveAlong不顺滑,为什么会有较大锯齿?

    const mapCtx = wx.createMapContext('map'this);
    mapCtx.moveAlong({
      markerId: 1,
      path: this.data.polyline[0].points,   //移动路径的坐标串
      duration: 10000,    //平滑移动的时间
      autoRotate: true    //车头按行驶方向自动旋转,默认true

    });

用的是官方示例,只是改了path的值,但出来的结果会有莫名其妙的差异,如下图

实际上应该是按公路一条直线或弧线,为什么会出现锯齿状呢?

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

2 个回答

  • 社区技术运营专员-Riven
    社区技术运营专员-Riven
    04-01

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    04-01
    有用
    回复 5
  • 闪烁的凡星
    闪烁的凡星
    04-15

    手机录屏地址:http://p.cecen.vip/aa.mp4

    首页点击“开始记录轨迹”按钮,程序开始每5秒记录一次位置,并将经纬度通过api.ApiInsert接口写入数据库,主要代码如下:

          wx.getLocation({
            type: 'gcj02',    //type: wgs84/gcj02
            success (res) {
              util.request(api.ApiInsert, {
                  latitude: res.latitude,
                  longitude: res.longitude,
                  speed: res.speed,
                  accuracy: res.accuracy
              },"POST").then(function (data) {
                  if (data.statusCode != 200) {
                    console.log("轨迹记录失败: " + data.message);
                  }
              });
                    }
                 })
    
    点击“停止记录轨迹”按钮时,终止以上动作。
    
    在轨迹页面中选择一个要回放的日期后进行初始化数据,主要代码如下:
        util.request(api.ApiGetLocation, {
          date: this.data.date
        }, 'GET').then(res => {
          if (res.statusCode == 200) {
            this.setData({
              location: { latitude: res.data[0].latitude, longitude: res.data[0].longitude },
              markers: [{
                id: 1,
                latitude: res.data[0].latitude,
                longitude: res.data[0].longitude,
                width: 16,
                height: 20,
                iconPath: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/car.png',
              }],
              polyline: [{
                points: res.data,
                color: '#3875FF',
                width: 6
              }]
            });
    
          }
          })
    

    初始化完数据后,当用然点确定时进行模拟回放,主要代码如下:

        const mapCtx = wx.createMapContext('map'this);
        mapCtx.moveAlong({
          markerId: 1,
          path: this.data.polyline[0].points,   //移动路径的坐标串
          duration: 10000,    //平滑移动的时间
          autoRotate: true    //车头按行驶方向自动旋转,默认true
        });
    


    前端map如下:

          <map

            class="map"
            id="map"
            latitude="{{location.latitude}}"
            longitude="{{location.longitude}}"
            markers="{{markers}}"
            polyline="{{polyline}}"
            scale="{{scale}}"
            enable-zoom="{{true}}"
            enable-scroll="{{true}}"
            showScale="{{true}}"
            showCompass="{{true}}"
          >
          </map>
    
    

    效果未达到实际要求,展示出来的路线,有些路段歪歪扭扭的,与实际不符。

    04-15
    有用
    回复 4
登录 后发表内容
问题标签