# 地图覆盖物

地图覆盖物主要包括 markers, 和 popups,他们是独立于地图的 Canvas 的,以一个 DOM 元素的形式存在,开发者可以发挥充分的想象力去运用它们,比如将 Vue 组件注册到 markers 里面。

# Markers

创建标记组件。

new Marker(options: Object?)
1

# 参数

options(Object?)

名称 类型 说明
element HTMLElement 作为标记的DOM元素,默认是一个浅蓝色、水滴状的SVG标记。
anchor string 一个字符串,用来表示标记的哪个部位距离坐标点最近,该坐标点可通过 Marker#setLngLat 设置。 字符串的值可以是 'center' , 'top' , 'bottom' , 'left' , 'right' , 'top-left' , 'top-right' , 'bottom-left' , and 'bottom-right' ,默认为'center'
offset PointLike 通过 PointLike 对象表示相对于元素中心偏移的像素数,左和上分别为负方向。
color string 默认标记的颜色(在没有给出options.element时),其默认值是'#3FB1CE'
draggable boolean 一个布尔值,表示标记是否可以在地图上拖动,默认为 false
clickTolerance number 用户点击拾取 marker 时,允许的鼠标位置偏移量,默认为等于地图的clickTolerance
pitchAlignment string 指定为map则 marker 将贴合在地图平面上,指定为viewport则 marker 将贴合在屏幕上,指定为auto则等同于 rotationAlignment,默认auto
rotation number 根据rotationAlignment的设置,沿着顺时针的旋转角度。
rotationAlignment string 指定为map则 marker 将随着地图旋转而转动,指定为viewport则 marker 的旋转角度与屏幕保持一致,不受地图影响。默认为viewport
scale number 如果element参数没有提供,则本参数将影响默认图标的大小。

# 示例

# 实例成员

addTo(map)

将标记添加到地图上。

参数

map(Map)

返回值

Marker: this

remove()

将标记从地图上移除。

返回值

Marker: this

示例

var marker = new aimap.Marker().addTo(map);
marker.remove();
1
2
getLngLat()

获取标记的地理位置。

这里得到结果的经纬度可能与之前setLngLat方法设置的经纬度相差几个360度,因为Marker可能会跨多个世界副本来封装锚点的经纬度,以保证标记能显示在屏幕上。

返回值

LngLat

setLngLat(lnglat)

设置标记的地理位置,并将其移动到相应位置。

参数

lnglat(LngLatLike)

返回值

Marker: this

getElement()

返回Marker的HTML元素。

返回值

HTMLElement: element

setPopup(popup)

为标记绑定弹窗。

参数

popup(Popup?) Popup 类的一个实例,如果为 undefined 或 null,则这个 Marker 实例上设置的任何弹窗都将被销毁。

返回值

Marker: this

getPopup()

返回绑定在该标记上的弹窗实例。

返回值

Popup: 弹窗

togglePopup()

根据当前状态打开或关闭弹窗。

返回值

Marker: this

getOffset()

获取标记的偏移量。

返回值

Point

setOffset(offset)

设置标记的偏移量。

参数

offset(PointLike)通过 PointLike 对象表示相对于元素中心偏移的像素数,左和上分别为负方向。

返回值

Marker: this

setDraggable(shouldBeDraggable)

设置标记的draggable属性和功能。

参数

shouldBeDraggable(boolean)(default false)开启或关闭拖拽功能

返回值

Marker: this

isDraggable()

返回标记是否可以拖拽。

返回值

boolean

setRotation(rotation)

设置 marker 的旋转角度。

参数

rotation(number)沿着顺时针的旋转角度。

返回值

Marker: this

示例

marker.setRotation(45);
1
getRotation()

获取 marker 当前的旋转角度。

返回值

number

setRotationAlignment(alignment)

设置 marker 的 rotationAlignment 属性。

参数

alignment(string)可选map或者viewport,含义参照上方表格。

返回值

Marker: this

示例

marker.setRotationAlignment('viewport');
1
getRotationAlignment()

获取 marker 的 rotationAlignment 属性。

返回值

string

setPitchAlignment(alignment)

设置 marker 的 pitchAlignment 属性。

参数

alignment(string)可选map或者viewport,含义参照上方表格。

返回值

Marker: this

示例

marker.setPitchAlignment('map');
1
getPitchAlignment()

获取 marker 的 pitchAlignment 属性。

返回值

string

# 事件

dragstart

拖拽开始时触发。

属性

marker(Marker): 拖拽的对象

drag

拖拽时触发。

属性

marker(Marker): 拖拽的对象

dragend

标记拖拽结束时触发。

属性

marker(Marker): 拖拽的对象

弹窗组件。

new Popup(options: Object?)
1

# 参数

options(Object?)

名称 类型 说明
closeButton boolean 如果为 true ,弹窗右上角 将出现关闭按钮,默认为true
closeOnClick boolean 如果为 true ,点击地图时 弹窗将关闭,默认为true
anchor string 表示弹窗位置的字符,通过 Popup#setLngLat 与坐标集关联。 选项有 'center' , 'top' , 'bottom' , 'left' , 'right' , 'top-left' , 'top-right' , 'bottom-left' ,以及 'bottom-right' 。如未设置,将对锚点进行动态设置,以保证弹窗落在地图容器内, 并偏向 'bottom'
offset number |PointLike 对应到弹窗位置的像素偏移具体为:表示离弹窗位置距离的一个数字表示常数偏移的 PointLike表示每个锚点位置偏移程度的Point对象 负偏移表示向左和向上。
className string 添加到弹窗容器的以空格分隔的CSS类名。
maxWidth string 设置弹窗CSS属性中最大宽度的字符串,例如 '300px' 。 为确保弹窗在缩放后能容纳内容,应设置此属性为 'none' ,默认为'240px'。 有效值请参考该链接: https://developer.mozilla.org/en-US/docs/Web/CSS/max-width

# 示例

# 实例成员

# 事件

open

当弹窗被手动或程序打开时触发。

属性

popup(Popup): 被打开的对象

close

当弹窗被手动或程序关闭时触发。

属性

popup(Popup): 被关闭的对象

最后更新于: 5/30/2022, 7:57:07 PM