MultiLabel
表示地图上的多个文本标注,可以自定义每个文本标注的样式。
构造函数 |
---|
TMap.MultiLabel(options:MultiLabelOptions) |
方法 | 返回值 | 说明 |
---|---|---|
setMap(map:Map) | this | 设置地图对象,如果map为null意味着将多个文本标注同时从地图中移除。 |
setGeometries(geometries: LabelGeometry[]) | this | 更新多文本标注数据,如果参数为null或undefined不会做任何处理。 |
setStyles(styles:MultiLabelStyleHash) | this | 设置MultiLabel图层相关样式信息,如果参数为null或undefined不会做任何处理。 |
getMap() | Map | 获取地图对象,若为空返回null。 |
getGeometries() | LabelGeometry[] | 获取多文本标注数据。 |
getStyles() | MultiLabelStyleHash | 获取图层相关样式信息。 |
setVisible(visible: Boolean) | this | 设置图层是否可见。 |
getVisible() | visible | 获取可见状态。 |
getGeometryById(id:String) | LabelGeometry | 根据多文本数据id来获取点数据。 |
updateGeometries(geometry:LabelGeometry[]) | this | 更新多文本数据,如果geometry的id存在于集合中,会更新对id的数据,如果之前不存在于集合中,会作为新的文本标注添加到集合中;如果参数为null或undefined不会做任何处理。 |
add(geometries: LabelGeometry[]) | this | 向图层中添加文本,如果geometry的id已经存在集合中,则该geometry不会被重复添加,如果geometry没有id或者id不存在于集合中会被添加到集合,没有id的geometry会被赋予一个唯一id;如果要添加到集合中的文本存在重复id,这些文本会被重新分配id;如果参数为null或undefined不会做任何处理。 |
remove(ids: String[]) | this | 移除指定id的文本,如果参数为null或undefined不会做任何处理。 |
on(eventName:String, listener:Function) | this | 添加listener到eventName事件的监听器数组中。 |
off(eventName:String, listener:Function) | this | 从eventName事件的监听器数组中移除指定的listener。 |
destroy() | 销毁图层对象 | |
getLabelBoxes(id:String) | LabelBoxHash | 获取文本整体像素宽高值,以一个key-value对象的形式返回,key为文本id,value为数组,第一个数据为文本整体的宽,第二个数据为文本整体的高。当未传入id时默认获得所有文本的宽高。注意该方法需要监听MultiLabel的’labelBox_changed’事件 |
事件名 | 参数 | 说明 |
---|---|---|
click | GeometryOverlayEvent | 点击事件 |
dblclick | GeometryOverlayEvent | 双击事件 |
mousedown | GeometryOverlayEvent | 鼠标在地图区域中左键按下时触发,只在桌面浏览器中触发 |
mouseup | GeometryOverlayEvent | 鼠标在地图区域中左键按下又弹起时触发,只在桌面浏览器中触发 |
mousemove | GeometryOverlayEvent | 鼠标在地图上移动时触发,只在桌面浏览器中触发 |
hover | GeometryOverlayEvent | 鼠标在图层上悬停对象改变时触发,事件对象中的geometry属性会指向交互位置所在图形的LabelGeometry,无图形时事件对象为null,只在桌面浏览器中触发 |
touchstart | GeometryOverlayEvent | 在地图区域触摸开始时触发,只在移动浏览器中触发 |
touchmove | GeometryOverlayEvent | 在地图区域触摸移动时触发,只在移动浏览器中触发 |
touchend | GeometryOverlayEvent | 在地图区域触摸结束时触发,只在移动浏览器中触发 |
labelBox_changed | - | 在数据变化时触发 |
MultiLabelOptions
MultiLabel配置参数。
属性名称 | 类型 | 说明 |
---|---|---|
id | String | 图层id,若没有会自动分配一个。 |
map | Map | 显示文本标注图层的底图。 |
styles | MultiLabelStyleHash | 文本标注的相关样式。 |
collisionOptions | CollisionOptions | 图层碰撞配置参数 |
geometries | LabelGeometry[] | 文本标注数据数组。 |
MultiLabelStyleHash
一个key-value形式对象, 表示文本标注的相关样式信息,key使用字符串,value是 LabelStyle 对象。
LabelStyle
表示应用于多标注图层的样式类型。
构造函数 |
---|
TMap.LabelStyle(options:LabelStyleOptions) |
名称 | 类型 | 说明 |
---|---|---|
color | String | 颜色属性,支持rgb(),rgba(),#RRGGBB等形式,默认为rgba(0,0,0,1)。 |
strokeColor | String | 描边颜色属性,支持rgb(),rgba(),#RRGGBB等形式,默认为rgba(0,0,0,0) |
size | Number | 文字大小属性,默认为14。 |
offset | Object | 文字偏移属性,单位为像素,以PointGeometry的位置点所对应屏幕位置为原点,x轴向右为正向左为负,y轴向下为正向上为负,默认为{x:0, y:0}。 |
angle | Number | 文字旋转属性,单位为度,以PointGeometry的位置点所对应屏幕位置为原点,逆时针为正,默认为0。 |
alignment | String | 文字水平对齐属性,默认为center,可选值为left(文字左侧与位置锚点对齐)、right(文字右侧与位置锚点对齐)、center(文字水平中心与位置锚点对齐)。 |
verticalAlignment | String | 文字垂直对齐属性,默认为middle,可选值为top(文字顶部与位置点对齐)、bottom(文字底部与位置点对齐)、middle(文字垂直中心与位置点对齐)。 |
height | Number | 文字背景框高度,单位为像素。 |
width | Number | 文字背景框宽度,单位为像素。 |
padding | String | 文字背景框内边距,单位为像素,属性支持接受1~2个值,规则符合css规范。例:“15px” 上下左右内边距为15px例:“15px 20px” 上下内边距为15px,左右内边距为20px注意设置宽高后padding将不生效 |
backgroundColor | String | 文字背景框颜色属性,支持rgb(),rgba(),#RRGGBB等形式,默认为rgba(0,0,0,0);该属性生效需要设置padding 或 width和hight 。 |
borderWidth | Number | 文字背景框边线宽度,单位为像素;该属性生效需要设置padding 或 width和hight 。 |
borderRadius | Number | 文字背景框圆角,单位为像素;该属性生效需要设置padding 或 width和hight 。 |
borderColor | String | 文字背景框边线颜色属性,支持rgb(),rgba(),#RRGGBB等形式,默认为rgba(0,0,0,0);该属性生效需要设置padding 或 width和hight 。 |
wrapOptions | LabelWrapOptions | 文本自动换行,支持设置软换行和硬换行,软换行支持配置最大换行宽度,硬换行换行符为’\n’。 LabelWrapOptions如果为空对象则以文本中换行符进行换行,如果为null或undefined则不换行 |
LabelGeometry
文本数据。
属性名称 | 类型 | 说明 |
---|---|---|
id | String | 点图形数据的标志信息,不可重复,若id重复后面的id会被重新分配一个新id,若没有会随机生成一个。 |
styleId | String | 对应MultiLabelStyleHash中的样式id,如果样式表中没有包含geometry指定的styleId,则该geometry不会被绘制出来。 |
position | LatLng | 标注点位置。 |
content | String | 标注文本。 |
rank | Number | 当开启文本碰撞时,值越大碰撞优先级越高。关闭碰撞时,表示标注文本的图层内绘制顺序。 |
properties | Object | 标注点的属性数据。 |
collisionGroupId | String | 组合碰撞id,当开启碰撞时该id相同的文本作为一个整体进行碰撞,rank取组合中的最大值 |
LabelWrapOptions
文本换行配置。当同时指定了最大换行宽度、最大行数和换行符时,换行优先级为: 最大行数>换行符>最大换行宽度。
属性名称 | 类型 | 说明 |
---|---|---|
maxWidth | Number | 最大换行宽度,单位是像素,默认不限制 |
maxLineCount | Number | 最大行数,默认不限制 |
rowSpacing | Number | 行间距,单位是像素,默认为0 |
CollisionOptions 对象规范
图层碰撞配置参数。
名称 | 类型 | 说明 |
---|---|---|
sameSource | Boolean | 是否开启图层内碰撞,优先级按rank进行碰撞,默认为false |
crossSource | Boolean | 是否开启跨图层间碰撞,所有开启的图层间进行碰撞,优先级按zIndex进行碰撞,默认为false |
vectorBaseMapSource | Boolean | 是否允许碰撞底图元素,默认为false |
这篇文章对您解决问题是否有帮助?
已解决
未解决