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动画结束时触发事件。 |
实例
本示例中,介绍如何设置标注的属性
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://lbs.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://lbs.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()); }); }
<!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://lbs.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://lbs.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>