SuperMap.Strategy.GeoText

控制标签渲染的策略。

Inherits from

Summary
SuperMap.Strategy.GeoText 控制标签渲染的策略。
Properties
groupField {String} 指定标签风格分组的属性字段名称。此属性字段是标签要素 attributes 中包含的字段,且字段对应的值的类型必须是数值型。 使用标签分组显示还需要设置 styleGroups 属性。
isAvoid {Boolean} 是否进行地图边缘的避让处理,如果设为true,将把与地图边缘相交的标签移到地图范围内,默认为 true,在地图边缘处做避让处理。
isOverLay {Boolean} 是否进行压盖处理,如果设为true,将隐藏被压盖的标签,默认为true。
style {Object} 标签的样式。此对象的可设属性可分为两类,第一类是标签文本样式,第二类是标签背景框样式。
styleGroups {Array} 标签风格分组数组,此数组用于将标签分组显示,每一组标签有一种显示风格。使用此属性需要设置 groupField 属性。
Constructor
SuperMap.Strategy.GeoText 构造一个新的 GeoText 策略对象,用于控制标签要素在 vector 中的绘制。
Functions
destroy 清除策略(strategy)。

Properties

style

{Object} 标签的样式。此对象的可设属性可分为两类,第一类是标签文本样式,第二类是标签背景框样式。

标签文本样式支持的属性有:

labelAlign {String} 标签对齐,是由两个字符组成的字符串,如:”lt”, “cm”, “rb”。 其中第一个字符代表水平方向上的对齐,”l”=left, “c”=center, “r”=right。 第二个字符代表垂直方向上的对齐,”t”=top, “m”=middle, “b”=bottom。
labelXOffset {Number} 标签在x轴方向的偏移量,默认值0。
labelYOffset {Number} 标签在y轴方向的偏移量,默认值0。
fontColor {String} 标签字体颜色,默认值”#000000”。
fontOpacity {Number} 标签透明度 (0-1),默认值为1。
fontFamily {String} 标签的字体类型。如:”sans-serif”。
fontSize {String} 标签的字体大小。默认值“12px”,最小为12px。
fontStyle {String} 标签的字体样式。可设值有:normal(标准的字体)、italic(斜体)、oblique(倾斜体)。默认值“normal”。
fontWeight {String} 标签的字体粗细,可设值有:lighter(细字符)、normal(标准字符)、bold(粗体字符)、bolder(更粗的字符)。默认值“normal”。
labelRotation {Number} 旋转角度,单位是度,不支持VML渲染器,,默认值为0。

标签背景框样式支持的属性有:

fill {Boolean} 是否使用背景色填充,默认值为false。
fillColor {String} 填充背景色,默认为”#ee9900”。
fillOpacity {Number} 背景填充不透明度(0-1),默认为: 0.4。
stroke {Boolean} 是否使用背景框,默认值为false。
strokeColor {String} 背景框描边颜色。
strokeOpacity {Number} 背景框的不透明度(0-1),默认为1。
strokeWidth {Number} 背景框像素宽度,默认为1。
strokeLinecap {String} strokeLinecap有三种类型 butt,round,square,默认为”round”。
strokeDashstyle {String} 有dot, dash, dashdot, longdash, longdashdot, solid几种样式,默认为”solid”。

isOverLay

{Boolean} 是否进行压盖处理,如果设为true,将隐藏被压盖的标签,默认为true。

isAvoid

{Boolean} 是否进行地图边缘的避让处理,如果设为true,将把与地图边缘相交的标签移到地图范围内,默认为 true,在地图边缘处做避让处理。

groupField

{String} 指定标签风格分组的属性字段名称。此属性字段是标签要素 attributes 中包含的字段,且字段对应的值的类型必须是数值型。 使用标签分组显示还需要设置 styleGroups 属性。

styleGroups

{Array} 标签风格分组数组,此数组用于将标签分组显示,每一组标签有一种显示风格。使用此属性需要设置 groupField 属性。

标签分组显示有如下情况:

1.没有同时设置 groupField 和 styleGroups,则所有标签都使用本策略(Strategy.GeoText)的 style;

2.同时设置 groupField 和 styleGroups,则按照 groupField 指定的字段名称获取标签要素 attributes 中对应的属性值(Number型);

a.如果属性值所对应的范围在 styleGroups 数组里,则此标签取数组里与该范围对应的 style。

b.如果属性值所对应的范围没有在 styleGroups 数组里,则此标签按照本策略(Strategy.GeoText)的 style 渲染。

此数组的每一个子对象必须有三个属性:

start : 与字段 groupField 相对应的属性值下限(包含); end:与字段 groupField 相对应的属性值上限(不包含); style:要赋值标签的style。

styleGroups数组形如:
[
  {
     start:200000,
     end:500000,
     style:{
          fontColor:"#00CD00",
          fontWeight:"bolder",
          fontSize:"18px"
      }
  },
  {
     start:500000,
     end:1000000,
     style:{
          fontColor:"#00EE00",
          fontWeight:"bolder",
          fontSize:"24px"
      }
  },
  {
     start:1000000,
     end:2000000,
     style:{
          fontColor:"#00FF7F",
          fontWeight:"bolder",
          fontSize:"30px"
      }
  },
  {
     start:2000000,
     end:100000000,
     style:{
          fontColor:"#00FF00",
          fontWeight:"bolder",
          fontSize:"36px"
      }
  }
]

Constructor

SuperMap.Strategy.GeoText

构造一个新的 GeoText 策略对象,用于控制标签要素在 vector 中的绘制。

//新建一个策略并使用在矢量要素图层(vector)上。
var strategy = new SuperMap.Strategy.GeoText();
var vectorLayer = new SuperMap.Layer.Vector("Label",{strategies: [strategy]});

Parameters

options {Object} 将会被加到策略对象上的可选参数

Returns

{<Constructor: SuperMap.Strategy.GeoText>} GeoText 策略对象。

Functions

destroy

destroy: function()

清除策略(strategy)。

destroy: function()
清除策略(strategy)。
矢量图层策略(strategy)的抽象类。使用策略类的实现子类进行实例化而不要直 接实例化这个类。
Close