qq.maps.Marker 类

继承自MVCObject

标注表示地图上的点,可自定义标注的图标。

构造函数

构造函数
Marker(options:MarkerOptions)

方法

方法 返回值 说明
getAnimation() MarkerAnimation 返回标注的动画效果。
getClickable() Boolean 返回标注的可点击性。
getCursor() String 返回标注的鼠标样式。
getDraggable() Boolean 返回标注是否可拖拽。
getFlat() Boolean 返回标注的阴影是否可见。
getIcon() String | MarkerImage 返回标注的图标。
getMap() Map 返回标注的map对象。
getPosition() LatLng 返回标注的位置。
getShadow() String | MarkerImage 返回标注的阴影。
getShape() MarkerShape 返回标注的可响应区域。
getTitle() String 返回标注的名称属性。
getVisible() Boolean 返回标注是否可见。
getZIndex() Number 返回标注的zIndex。
getRotation() Number 返回marker的旋转角度
getDecoration() MarkerDecoration 获取标注的覆盖内容
setAnimation(animation:MarkerAnimation) none 启用一个动画,目前Marker支持反复弹跳、坠落、落下、弹起四种动画。当设置为null时,会自动终止当前动画。
setClickable(clickable:Boolean) none 设置标注是否可点击。
setCursor(cursor:String) none 设置鼠标经过标注时的样式。
setDraggable(draggable:Boolean) none 设置标注是否可拖拽。
setFlat(flat:Boolean) none 设置标注是否有阴影。
setIcon(icon:String | MarkerImage) none 设置标注图标。
setMap(map:Map) none 在地图对象上显示Marker,若设置为null,则从地图上移除Marker。
setPosition(position:LatLng) none 设置标注位置。
setShadow(shadow:String | MarkerImage) none 设置标注的阴影。
setShape(shape:MarkerShape) none 设置标注的可响应区域。
setTitle(title:String) none 设置标注的名称。
setVisible(visible:Boolean) none 设置标注可见性。
setZIndex(zIndex:Number) none 设置标注的zIndex。
setRotation(rotation:Number) none 设置marker角度 (注:rotation属性取值范围0-360,支持IE9及以上版本)
setDecoration(decoration:MarkerDecoration) none 设置标注的覆盖内容
moveTo(latlng:LatLng,speed:Number) none 以给定速度移动点标记到指定位置。
参数lnglat为指定位置,必设;speed为指定速度,单位:千米/小时。
moveAlong(path:Array<LatLng>,speed:Number) none 以指定的速度,点标记沿指定的路径移动。
参数path为路径坐标串;speed为指定速度,单位:千米/小时。
stopMove() none 点标记停止动画。
pauseMove() none 暂定点标记的动画效果。
resumeMove() none 重新开始点标记的动画效果。

事件

事件名 参数 说明
animation_changed none 当标注动画效果更改时会触发此事件。
clickable_changed none 当标注可点性更改时会触发此事件。
cursor_changed none 当标注鼠标样式更改时会触发此事件。
draggable_changed none 当标注可拖拽性更改时会触发此事件。
flat_changed none 当标注阴影是否可见更改时会触发此事件。
icon_changed none 当标注图标更改时会触发此事件。
map_changed none 当标注map属性更改时会触发此事件。
position_changed none 当标注位置改变时会触发此事件。
shadow_changed none 当标注的阴影更改时会触发此事件。
shape_changed none 当标注可响应区域更改时会触发此事件。
title_changed none 当标注名称属性更改时会触发此事件。
visible_changed none 当标注可见性更改时会触发此事件。
zindex_changed none 当标注zIndex值更改时会触发此事件。
click event:MouseEvent 点击标注图标后会触发此事件。
mousedown event:MouseEvent 对标注图标触发 DOM mousedown 事件时会触发此事件。
mouseup event:MouseEvent 对标注图标触发 DOM mouseup 事件时会触发此事件。
mouseover event:MouseEvent 当鼠标进入标注图标区域时会触发此事件。
mouseout event:MouseEvent 当鼠标离开标注图标区域时会触发此事件。
dblclick event:MouseEvent 当双击标注图标时会触发此事件。
rightclick event:MouseEvent 右键点击标注时会触发此事件。
dragstart event:MouseEvent 当用户开始拖动标注时会触发此事件。
dragging event:MouseEvent 当用户正在拖动标注时会触发此事件。
dragend event:MouseEvent 当用户停止拖动标注时会触发此事件。
moving event:MouseEvent 点标记在执行moveTo,moveAlong动画时触发事件,其中passedLatlngs为Marker对象在moveAlong或者moveTo过程中已经走过的路径。
moveend none 点标记执行moveTo,moveAlong动画结束时触发事件。

实例

本示例中,介绍如何设置标注的属性

JavaScript
function init() {
    var center = new qq.maps.LatLng(39.982163, 116.306070);
    var map = new qq.maps.Map(document.getElementById("container"), {
        center: center,
        zoom: 16
    });
    //创建一个Marker
    var marker = new qq.maps.Marker({
        //设置Marker的位置坐标
        position: center,
        //设置显示Marker的地图
        map: map
    });

    //设置Marker的可见性,为true时可见,false时不可见,默认属性为true
    marker.setVisible(true);
    //设置Marker的动画属性为从落下
    marker.setAnimation(qq.maps.MarkerAnimation.DOWN);
    //设置Marker是否可以被拖拽,为true时可拖拽,false时不可拖拽,默认属性为false
    marker.setDraggable(true);
    ////设置Marker自定义图标的属性,size是图标尺寸,该尺寸为显示图标的实际尺寸,origin是切图坐标,该坐标是相对于图片左上角默认为(0,0)的相对像素坐标,anchor是锚点坐标,描述经纬度点对应图标中的位置
    var anchor = new qq.maps.Point(0, 39),
        size = new qq.maps.Size(42, 68),
        origin = new qq.maps.Point(0, 0),
        icon = new qq.maps.MarkerImage(
            "https://open.map.qq.com/doc/img/nilt.png",
            size,
            origin,
            anchor
        );
    marker.setIcon(icon);
    //设置Marker阴影图片属性,size是图标尺寸,该尺寸为显示图标的实际尺寸,origin是切图坐标,该坐标是相对于图片左上角默认为(0,0)的相对像素坐标,anchor是锚点坐标,描述经纬度点对应图标中的位置
    var anchorb = new qq.maps.Point(3, -30),
        sizeb = new qq.maps.Size(42, 11),
        origin = new qq.maps.Point(0, 0),
        iconb = new qq.maps.MarkerImage(
            "https://open.map.qq.com/doc/img/nilb.png",
            sizeb,
            origin,
            anchorb
        );
    marker.setShadow(iconb);
    //设置标注的名称,当鼠标划过Marker时显示
    marker.setTitle("测试");

    //添加信息窗口
    var info = new qq.maps.InfoWindow({
        map: map
    });
    //获取标记的可拖动属性
    info.open();
    info.setContent('标记的可拖动属性为:' + marker.getDraggable());
    info.setPosition(marker.getPosition());
    //标记Marker点击事件
    qq.maps.event.addListener(marker, 'click', function() {
        info.open();
        info.setContent('<div style="text-align:center;white-space:nowrap;' +
            'margin:10px;">单击标记</div>');
        info.setPosition(marker.getPosition());
    });
    //设置Marker停止拖动事件
    qq.maps.event.addListener(marker, 'dragend', function() {
        info.open();
        info.setContent('<div style="text-align:center;white-space:nowrap;' +
            'margin:10px;">拖动标记</div>');
        //getPosition()  返回Marker的位置
        info.setPosition(marker.getPosition());
    });

}
JavaScript+HTML
<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>设置marker属性</title>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }
        body,
        button,
        input,
        select,
        textarea {
            font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
        }
        p {
            width: 603px;
            padding-top: 3px;
            margin-top: 10px;
            overflow: hidden;
        }
        .btn {
            width: 112px;
        }
    </style>
    <script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>

</head>

<body onLoad="init()">
    <script>
        function init() {
            var center = new qq.maps.LatLng(39.982163, 116.306070);
            var map = new qq.maps.Map(document.getElementById("container"), {
                center: center,
                zoom: 16
            });
            //创建一个Marker
            var marker = new qq.maps.Marker({
                //设置Marker的位置坐标
                position: center,
                //设置显示Marker的地图
                map: map
            });

            //设置Marker的可见性,为true时可见,false时不可见,默认属性为true
            marker.setVisible(true);
            //设置Marker的动画属性为从落下
            marker.setAnimation(qq.maps.MarkerAnimation.DOWN);
            //设置Marker是否可以被拖拽,为true时可拖拽,false时不可拖拽,默认属性为false
            marker.setDraggable(true);
            ////设置Marker自定义图标的属性,size是图标尺寸,该尺寸为显示图标的实际尺寸,origin是切图坐标,该坐标是相对于图片左上角默认为(0,0)的相对像素坐标,anchor是锚点坐标,描述经纬度点对应图标中的位置
            var anchor = new qq.maps.Point(0, 39),
                size = new qq.maps.Size(42, 68),
                origin = new qq.maps.Point(0, 0),
                icon = new qq.maps.MarkerImage(
                    "https://open.map.qq.com/doc/img/nilt.png",
                    size,
                    origin,
                    anchor
                );
            marker.setIcon(icon);
            //设置Marker阴影图片属性,size是图标尺寸,该尺寸为显示图标的实际尺寸,origin是切图坐标,该坐标是相对于图片左上角默认为(0,0)的相对像素坐标,anchor是锚点坐标,描述经纬度点对应图标中的位置
            var anchorb = new qq.maps.Point(3, -30),
                sizeb = new qq.maps.Size(42, 11),
                origin = new qq.maps.Point(0, 0),
                iconb = new qq.maps.MarkerImage(
                    "https://open.map.qq.com/doc/img/nilb.png",
                    sizeb,
                    origin,
                    anchorb
                );
            marker.setShadow(iconb);
            //设置标注的名称,当鼠标划过Marker时显示
            marker.setTitle("测试");

            //添加信息窗口
            var info = new qq.maps.InfoWindow({
                map: map
            });
            //获取标记的可拖动属性
            info.open();
            info.setContent('标记的可拖动属性为:' + marker.getDraggable());
            info.setPosition(marker.getPosition());
            //标记Marker点击事件
            qq.maps.event.addListener(marker, 'click', function() {
                info.open();
                info.setContent('<div style="text-align:center;white-space:nowrap;' +
                    'margin:10px;">单击标记</div>');
                info.setPosition(marker.getPosition());
            });
            //设置Marker停止拖动事件
            qq.maps.event.addListener(marker, 'dragend', function() {
                info.open();
                info.setContent('<div style="text-align:center;white-space:nowrap;' +
                    'margin:10px;">拖动标记</div>');
                //getPosition()  返回Marker的位置
                info.setPosition(marker.getPosition());
            });

        }
    </script>
    <div style="width:603px;height:300px" id="container"></div>
    <p>Marker可以拖动,点击时弹出单击信息窗口,拖动Marker时弹出拖动信息窗口</p>

</body>

</html>