开发者社区> 问答> 正文

钉钉地图支持translateMarker吗?

钉钉地图支持translateMarker吗?

展开
收起
三分钟热度的鱼 2023-09-13 22:27:48 91 0
3 条回答
写回答
取消 提交回答
  • 是的,钉钉地图(DingTalk Maps)确实支持"translateMarker"方法。这个方法允许你在地图上移动标记。以下是一个简单的示例:

    var marker = new DDM.Marker({
        position: new DDM.LatLng(39.908, 116.408),
        title: '我是标记',
        offset: new DDM.Size(10, -30)
    });
    marker.addEventListener('click', function() {
        // 获取当前位置
        var currentPos = this.getPosition();
        console.log("Current position: " + JSON.stringify(currentPos));
        this.showInfoWindow(); // 显示标记的信息窗口
    })
    map.addOverlay(marker);
    function translateMarker(direction) {
        if (!isNaN(parseFloat(direction)) && isFinite(direction)) {
            switch (direction) {
                case 'up':
                    marker.moveByPixel([0, direction]);
                    break;
                case 'down':
                    marker.moveByPixel([0, (-direction)]);
                    break;
                case 'left':
                    marker.moveByPixel([-direction, 0]);
                    break;
                case 'right':
                    marker.moveByPixel([direction, 0]);
                    break;
            }
        } else if ("string" == typeof direction) {
            for (let key in DIRECTIONS_MAP) {
                if (DIRECTIONS_MAP[key] === direction) {
                    return transformMarker(+key);
                }
            }
        }
    };
    

    在这个示例中,我们创建了一个新的标记,并监听其点击事件。当用户点击标记时,我们将获取其当前位置,并调用"translateMarker"方法来移动它。"translateMarker"方法接受一个参数,该参数表示要沿哪个方向移动标记。有四个可用的选项:"up"、"down"、"left" 和 "right"。

    2023-09-15 09:09:16
    赞同 展开评论 打赏
  • 可以的。

    平移点标记(translateMarker)
    https://open.dingtalk.com/document/personalapp/translation-point-marker-translatemarker

    image.png

    MapContext.translateMarker用于平移点标记(marker)。

    对同一个 markerId,在 translateMarker 没调用 animationEnd 之前再次调动无法生效,需要在调用 animationEnd 之后再调用一次动画,方才有效。

    示例代码

    this.mapCtx = dd.createMapContext('map'); this.mapCtx.translateMarker({ markerId:0, // 必填 destination:{ longitude:120.2,latitude:30.3 // 必填 }, autoRotate:true, // 选填,默认true rotate:90, // 选填,在autoRotate为false的情况下才有效,不填默认是0 duration:900, // 选填,单位ms,默认1000 ms animationEnd() { console.log('animation end') } //function 动画结束回调 });

    入参
    入参为 Object 类型,属性如下:

    image.png

    2023-09-14 08:36:06
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    不支持 translateMarker 方法。但是,您可以使用地图 API 提供的其他方法来实现类似的功能,例如平移地图视图以显示不同的 marker。要实现这一点,您可以使用地图 API 的 setCenter 方法来设置地图的中心点,或者使用 setZoom 方法来设置地图的缩放级别。

    2023-09-14 07:50:44
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载