4***@qq.com
4***@qq.com
  • 发布:2024-08-14 14:45
  • 更新:2024-10-24 14:00
  • 阅读:394

【报Bug】translateMarker平移marker app-nvue 2.1.5+、H5、微信小程序带动画、抖音、支付宝、京东、百度、QQ小程序但是在H5不能实现

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10

HBuilderX类型: 正式

HBuilderX版本号: 4.24

浏览器平台: Chrome

项目创建方式: HBuilderX

示例代码:

// 创建map对象
this.mapContext = uni.createMapContext('map'); //测试轨迹

this.mapContext.translateMarker({
markerId: 10,
destination: {
longitude: 25.040609, // 车辆即将移动到的下一个点的经度
latitude: 102.712251, // 车辆即将移动到的下一个点的纬度
},
autoRotate: true,
rotate: 20,
duration: 1000,
// 动画结束
animationEnd: function() {

                        uni.showToast({  
                            title: '回放完成',  
                            duration: 1400,  
                            icon: 'none'  
                        });  
                },  
                fail(e) {  
                    console.log(e);  
                    // 轨迹回放失败回调    
                },  
            });

操作步骤:

// 创建map对象
this.mapContext = uni.createMapContext('map'); //测试轨迹

this.mapContext.translateMarker({
markerId: 10,
destination: {
longitude: 25.040609, // 车辆即将移动到的下一个点的经度
latitude: 102.712251, // 车辆即将移动到的下一个点的纬度
},
autoRotate: true,
rotate: 20,
duration: 1000,
// 动画结束
animationEnd: function() {

                        uni.showToast({  
                            title: '回放完成',  
                            duration: 1400,  
                            icon: 'none'  
                        });  
                },  
                fail(e) {  
                    console.log(e);  
                    // 轨迹回放失败回调    
                },  
            });

预期结果:

执行动画成功

实际结果:

失败了了了了 了

bug描述:

官方文档显示可以在H5支持动画translateMarker,但是运行报errMsg: 'translateMarker:fail not found'}

2024-08-14 14:45 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

你好,刚才测试的是正常的:你再检查一下你的代码

  • 4***@qq.com (作者)

    {

    "errMsg": "translateMarker:fail maps2.LatLng is not a constructor"

    }

    报的这个错误我在nvue可以成功执行

    2024-08-14 15:45

  • DCloud_UNI_yuhe

    回复 4***@qq.com: 我这里测试的vue和nvue都没有这个错误,你能给一下你的完整代码吗?

    2024-08-14 16:05

  • 4***@qq.com (作者)


    回复 2609828:

    <map id='map' style="width: 100%; height: 100%;" :scale="7" :latitude="latitude"

    longitude="longitude" :markers="marker" :polyline="polyline">
    </map>

    mapContext 已经在data定义

    onReady() {

    // 创建map对象

    this.mapContext = uni.createMapContext('map'); //测试轨迹

    },


    this.mapContext.translateMarker({

    markerId: 10,

    destination: {

    longitude: 25.040609, // 车辆即将移动到的下一个点的经度

    latitude: 102.712251, // 车辆即将移动到的下一个点的纬度

    },

    autoRotate: true,

    rotate: 20,

    duration: 1000,

    // 动画结束

    animationEnd: function() {


                        uni.showToast({  
    title: '回放完成',
    duration: 1400,
    icon: 'none'
    });
    },
    fail(e) {
    console.log(e);
    // 轨迹回放失败回调
    },
    });

    2024-08-14 16:42

  • 4***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 是否是因为编辑器版本不一样

    2024-08-14 16:50

DCloud_UNI_yuhe

DCloud_UNI_yuhe

uni.createMapContext('test_map', this) 还得穿个this

  • 4***@qq.com (作者)

    试了一样的。

    如果我填一个没有定义过的ID就是报errMsg: 'translateMarker:fail not found'

    已经有markers ID的就是errMsg: 'translateMarker:fail maps2.LatLng is not a constructor'

    nvue没有问题正常

    2024-08-14 17:06

  • DCloud_UNI_yuhe

    回复 4***@qq.com: 你translateMarker是在哪里执行的

    2024-08-14 17:19

  • DCloud_UNI_yuhe

    尝试运行下面的代码:


    <template>  
    <view>
    <map id="test_map" style="width: 750rpx; height: 300px;" :show-location="true" :markers="markers"
    :longitude="map.longitude" :latitude="map.latitude">
    </map>
    <button @click="dingwei">移动</button>
    </view>
    </template>

    <script>
    export default {
    data() {
    return {
    map: {
    longitude: '', //经度
    latitude: '', //纬度

    },
    markers: [{
    id: 1,
    latitude: '39.9496252',
    longitude: '116.3485888',
    iconPath: '/static/logo.png',
    width: 32,
    height: 32
    }]
    }
    },
    onReady() {
    this.context = uni.createMapContext('test_map', this)
    },
    onLoad() {
    let _this = this;
    _this.map.longitude = '116.3485888'
    _this.map.latitude = '39.9496252'
    },
    methods: {
    dingwei() {
    this.context.translateMarker({
    markerId: 1,
    destination: {
    latitude: 39.9499999,
    longitude: 116.3485888,
    },
    success(res) {
    console.log('移动完成:', res)
    },
    fail(res) {
    console.log('移动完成9:', res)
    }
    })
    }
    }
    }
    </script>

    <style scoped>
    </style>

    2024-08-14 17:22

  • 4***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 方法主动触发的,在生命周期自动触发都一样

    2024-08-14 17:29

  • 4***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 对了测试,坐标没有移动,我换了一个坐标来测试动画,还是在原地

    2024-08-14 17:31

4***@qq.com

4***@qq.com (作者)

用你发的代码测试的情况

  • DCloud_UNI_yuhe

    我知道了,是高德地图的问题,我发现这个问题了,我去看一下产生原因

    2024-08-14 17:36

  • 4***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 要得我这边确实使用的高德地图,这个修复了到时候不用更新编辑器,或者用新的测试版的编辑器吧

    2024-08-14 17:40

  • DCloud_UNI_yuhe

    回复 4***@qq.com: 应该是需要的,但是我可以给你一个替代方案,不用更新也可以

    2024-08-14 17:49

  • 4***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 方案发给我,试试

    2024-08-15 09:15

  • 4***@qq.com (作者)

    回复 DCloud_UNI_yuhe: 对了我是要做轨迹上的marker平移

    2024-08-15 09:43

1***@qq.com

1***@qq.com

我的是在H5正常平移,打包微信小程序,无法平移知道什么原因吗?

要回复问题请先登录注册