SuperMap.Layer.Unique

单值专题图。

单值专题图是利用不同的颜色或符号(线型、填充)表示图层中某一属性信息的不同属性值,属性值相同的要素具有相同的渲染风格。单值专题图多用于具有分类属性的地图上, 比如土壤类型分布图、土地利用图、行政区划图等。单值专题图着重表示现象质的差别,一般不表示数量的特征。

客服端单值专题图采用数据驱动的可视化策略,用户只需要为专题指定数据(数据类型:<SuperMap.Feature.Vector>)和具体数据对应的渲染风格(styleGroups)即可渲染单值专题图。

注意:客户端专题图使用 Cavans 渲染,要求浏览器支持 Cavans。

Inherits from

Summary
SuperMap.Layer.Unique 单值专题图。
Properties
features {Array(SuperMap.Feature.Vector)} 用户数据,矢量要素。
highlightStyle {Object} 高亮样式。
isBaseLayer {Boolean} 该图层是否是基础图层,默认值为 false。可以在构造函数中是通过 options 设置。
isHoverAble {Boolean} 图形是否在 hover 时高亮 ,默认值:false。
style {Array(Object)} 图层中专题要素的样式,可设值如下:
styleGroups {Array} 风格分组数组,此数组用于将专题要素分组,每一组专题要素有一种显示风格。使用此属性需要设置 themeField 属性。
themeField {String} 用于指定专题要素样式的属性字段名称。此属性字段是要用户数据(feature) attributes 中包含的字段,且字段对应的值的类型必须是数值型。 使用标签分组显示还需要设置 styleGroups 属性。
Constructor
SuperMap.Layer.Unique 构造函数。
Functions
addFeatures 向专题图图层中添加数据 , 专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。
clear 清除图层内容。
destroy 销毁图层,释放资源。
getFeatureBy 在专题图的要素数组 features 里面遍历每一个 feature,当 feature[property] === value 时, 返回此 feature(并且只返回第一个)。
getFeatureById 通过给定一个 id,返回对应的矢量要素。
getFeaturesByAttribute 通过给定一个属性的 key 值和 value 值,返回所有匹配的要素数组。
on 添加专题要素事件监听。
redraw 重绘该图层,成功则返回true,否则返回false。
removeAllFeatures 清除当前图层所有的矢量要素。
removeFeatures 从专题图中删除 feature。这个函数删除所有传递进来的矢量要素。 参数中的 features 数组中的每一项,必须是已经添加到当前图层中的 feature, 如果无法确定 feature 数组,则可以调用 removeAllFeatures 来删除所有feature。 如果要删除的 feature 数组中的元素特别多,推荐使用 removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
setOpacity 设置图层的不透明度,取值[0-1]之间。
un 移除专题要素事件监听。

Properties

isBaseLayer

{Boolean} 该图层是否是基础图层,默认值为 false。可以在构造函数中是通过 options 设置。

features

{Array(SuperMap.Feature.Vector)} 用户数据,矢量要素。

isHoverAble

{Boolean} 图形是否在 hover 时高亮 ,默认值:false。

highlightStyle

{Object} 高亮样式。

style

{Array(Object)} 图层中专题要素的样式,可设值如下:

Symbolizer properties

fill {Boolean} 是否填充,不需要填充则设置为 false,默认值为 true。此属性与 stroke 不能同时为 false,如果 fill 与 stroke 同时为 false,将按 fill 与 stroke 的默认值渲染图层。
fillColor {String} 十六进制填充颜色。默认值为 “#000000”。
fillOpacity {Number} 填充不透明度。取值范围[0, 1],默认值 1。
stroke {Boolean} 是否描边,不需要描边则设置为false,默认值为 false。此属性与 fill 不能同时为 false,如果 fill 与 stroke 同时为 false,将按 fill 与 stroke 的默认值渲染图层。
strokeColor {String} 十六进制描边颜色。
strokeOpacity {Number} 描边的不透明度。取值范围[0, 1],默认值 1。
strokeWidth {Number} 线宽度/描边宽度,默认值 1。
strokeLinecap {String} 线帽样式;strokeLinecap 有三种类型 “butt”, “round”, “square”; 默认为”butt”。
strokeLineJoin {String} 线段连接样式;strokeLineJoin 有三种类型 “miter”, “round”, “bevel”; 默认为”miter”。
strokeDashstyle {Sting} 虚线类型; strokeDashstyle 有八种类型 “dot”,“dash”,“dashdot”,“longdash”,“longdashdot”,“solid”, “dashed”, “dotted”; 默认值 “solid”。solid 表示实线。
pointRadius {Number} 点半径,默认为 6 (像素)。
shadowBlur {number} 阴影模糊度,(大于 0 有效; 默认值 0)。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。
shadowColor {string} 阴影颜色; 默认值 ‘#000000’。 注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。
shadowOffsetX {number} 阴影 X 方向偏移值; 默认值 0。
shadowOffsetY {number} 阴影 Y 方向偏移值; 默认值 0。
label {String} 专题要素附加文本标签内容。
fontColor {String} 附加文本字体颜色。
fontSize {Number} 附加文本字体大小。默认值 12,单位是像素。
fontStyle {String} 附加文本字体样式。可设值:”normal”, “italic”, “oblique”; 默认值:”normal” 。
fontVariant {String} 附加文本字体变体。可设值:”normal”, “small-caps”; 默认值:”normal” 。
fontWeight {String} 附加文本字体粗细。可设值:”normal”, “bold”, “bolder”, “lighter”; 默认值:”normal” 。
fontFamily {String} 附加文本字体系列。fontFamily 值是字体族名称或/及类族名称的一个优先表,每个值逗号分割,浏览器会使用它可识别的第一个值。可以使用具体的字体名称(”times”、”courier”、”arial”)或字体系列名称(”serif”、”sans-serif”、”cursive”、”fantasy”、”monospace”)。默认值:”arial,sans-serif”.
labelPosition {string} 附加文本位置, 可以是 ‘inside’, ‘left’, ‘right’, ‘top’, ‘bottom’; 默认值 ‘top’。
labelAlign {string} 附加文本水平对齐。可以是 ‘left’, ‘right’, ‘center’; 默认值 ‘center’。
labelBaseline {string} 附加文本垂直对齐。 可以是 ‘top’, ‘bottom’, ‘middle’;默认值 ‘middle’。
labelXOffset {Number} 附加文本在x轴方向的偏移量。
labelYOffset {Number} 附加文本在y轴方向的偏移量。

themeField

{String} 用于指定专题要素样式的属性字段名称。此属性字段是要用户数据(feature) attributes 中包含的字段,且字段对应的值的类型必须是数值型。 使用标签分组显示还需要设置 styleGroups 属性。

styleGroups

{Array} 风格分组数组,此数组用于将专题要素分组,每一组专题要素有一种显示风格。使用此属性需要设置 themeField 属性。

专题要素分组有如下情况:

1.没有同时设置 themeField 和 styleGroups,则所有专题要素都使用本图层的 style 进行渲染;

2.同时设置 themeField 和 styleGroups,则按照 themeField 指定的字段名称获取用户数据(feature)attributes 中对应的属性值;

a.如果属性值等于 styleGroups 数组里某个元素定义的 value 值,则此专题要素取 styleGroups 数组中该元素定义的 style 进行渲染。

b.如果属性值不等于 styleGroups 数组里任何元素定义的 value 值,则此专题要素按照本图层的 style 进行渲染。

此数组每个元素对象必须有两个属性:

value : 与字段 themeField 相对应的属性值;

style:专题要素 style。

styleGroups数组形如:
[
  {
     value:"草地",
     style:{
         fillColor:"#98FB98"
      }
  },
  {
     value:"城市",
     style:{
         fillColor:"#CDC9C9"
      }
  },
  {
     value:"灌丛",
     style:{
         fillColor:"#71C671"
      }
  },
  {
     value:"旱地",
     style:{
         fillColor:"#EE9A49"
      }
  }
]

Constructor

SuperMap.Layer.Unique

构造函数。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");

Parameters

name {String} 此图层的图层名。
options {Object} 此类与父类提供的属性。

Returns

{SuperMap.Layer.Unique} 专题图。

Functions

destroy

destroy: function()

销毁图层,释放资源。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.destroy();

addFeatures

addFeatures: function( features )

向专题图图层中添加数据 , 专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.addFeatures(features);

Parameters

features {Array(SuperMap.Feature.Vector)} 需要添加的数据(矢量要素)。

clear

清除图层内容。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.clear();

清除的内容包括数据(features) 、专题要素、缓存。

addFeatures

向专题图图层中添加数据 , 专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.addFeatures(features);

Parameters

features {Array(SuperMap.Feature.Vector)} 需要添加的数据(矢量要素)。

removeFeatures

从专题图中删除 feature。这个函数删除所有传递进来的矢量要素。 参数中的 features 数组中的每一项,必须是已经添加到当前图层中的 feature, 如果无法确定 feature 数组,则可以调用 removeAllFeatures 来删除所有feature。 如果要删除的 feature 数组中的元素特别多,推荐使用 removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。

调用此函数会清空图层中缓存的专题图要素。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.removeFeatures(features);

Parameters

features {Array(SuperMap.Feature.Vector)} 要删除feature的数组。

removeAllFeatures

清除当前图层所有的矢量要素。

调用此函数会清空图层中缓存的专题图要素。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.removeAllFeatures();

getFeatureBy

在专题图的要素数组 features 里面遍历每一个 feature,当 feature[property] === value 时, 返回此 feature(并且只返回第一个)。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.getFeatureBy("property", "value");

Parameters

property {String} feature 的某个属性名称。
value {String} property 所对应的值。

Returns

{SuperMap.Feature.Vector} 第一个匹配属性和值的矢量要素。

getFeatureById

通过给定一个 id,返回对应的矢量要素。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.getFeatureById(id);

Parameters

featureId {String} 矢量要素的属性 id。

Returns

{SuperMap.Feature.Vector} 对应id的 feature,如果不存在则返回 null。

getFeaturesByAttribute

通过给定一个属性的 key 值和 value 值,返回所有匹配的要素数组。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.getFeatureById("Pop", 500);

Parameters

attrName {String} 属性的 key。
attrValue {Mixed} 属性对应的 value 值。

Returns

Array(SuperMap.Feature.Vector) 一个匹配的 feature 数组。

setOpacity

设置图层的不透明度,取值[0-1]之间。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.setOpacity(0.2);

Parameter

opacity {Float} 图层的不透明度,取值范围:[0-1]。

redraw

重绘该图层,成功则返回true,否则返回false。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.redraw();

Returns

{Boolean} 重绘该图层是否成功。

on

添加专题要素事件监听。

支持的事件包括: click、mousedown、mousemove、mouseout、mouseover、mouseup。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.on("mouseover", evn);

function evn(e){
   if(e.target && e.target.refDataID){
       if(e.target.dataInfo){
           alert(e.target.dataInfo);
       }
   }
}

Parameters

event {String} 事件名称。
callback {Function} 事件回调函数。

un

移除专题要素事件监听。

var themeLayer = new SuperMap.Layer.Unique("ThemeLayer");
themeLayer.un("mouseover", evn);

Parameters

event {String} 事件名称。
callback {Function} 事件回调函数。
矢量要素类。该类具有 Geometry 属性存放几何信息, attributes 属性存放非几何信息,另外还包含了 style 属性,用来定义矢量要素的样式, 其中,默认的样式在 SuperMap.Feature.Vector.style 类中定义,如果没有特别的指定将使用默认的样式,
destroy: function()
销毁图层,释放资源。
addFeatures: function( features )
向专题图图层中添加数据 , 专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。
地理几何专题要素型专题图层基类。
构造函数。
Close