SuperMap.Layer.Vector

该图层用于渲染矢量要素。

Inherits from

Summary
SuperMap.Layer.Vector 该图层用于渲染矢量要素。
Constants
EVENT_TYPES {Array(String)} 此类支持的事件类型 Examples:
Properties
clipFeature {Boolean} 是否对要素进行裁剪,当图层使用SVG或者VML渲染时候有效,默认为true。注意此属性在Canvas渲染时无效,Canvas图层不进行裁剪。
features {Array(SuperMap.Feature.Vector)}用于存放矢量要素。
geometryType {String} geometryType可以设置此图层几何形状的限制, 比如可以设置为 “SuperMap.Geometry.Point” 进行限制。
isBaseLayer {Boolean} 该图层是否是 基础图层,默认值为 false。可以在构造函数中是通过options设置。
isFixed {Boolean} 设置当前图层在鼠标拖动及放大缩小时位置是否固定,默认为 false。
ratio {Float} 设置矢量要素在图层中与map上的比例,默认为1。
rendererOptions {Object} 渲染器的可选属性。
renderers {Array(String)} 可支持渲染器的列表,支持的渲染方式有’SVG’, ‘VML’, ‘Canvas’,’Canvas2’ 如果在可选属性中未设置 ‘renderer’ 选项,则使用当前浏览器支持的此列表中的第一个渲染方式。 Canvas、Canvas2 渲染方式均是基于 Html5 Canvas 实现的,若使用这两种方式渲染矢量数据的话需要选用支持Html5 Canvas的浏览器。其中,Canvas2 是对 Canvas 在性能上的优化,Canvas2 只绘制发生变化的瓦片,减少了重绘次数, 提高了绘制速度,而且对于数量在10000以上的矢量要素,采用分块显示,增强了用户体验效果。 相对于Canvas,建议使用Canvas2渲染方式。 这几种渲染方式都可以实现对要素的编辑,在IE9以下建议用 SVG、VML 两种渲染方式,其他浏览器建议使用Canvas渲染。
reportError {Boolean} 当读取渲染器失败时,是否发送友好的的错误消息,默认为true。
style {Object} 当前图层的默认样式。
styleMap {SuperMap.StyleMap} 适用于图层的样式组,包含不同状态下的样式信息,使用方式参考 SuperMap.StyleMap
transition {Boolean} 是否使用缩放动画,默认为true。 缩放动画只在使用Canvas2渲染时有效。
Constructor
SuperMap.Layer.Vector 创建一个矢量图层。
Functions
addFeatures 给这个图层添加features。
destroy 销毁Vector图层,释放资源。
display 临时隐藏或者显示图层。通过对CSS控制产生即时效果,重新渲染失效。 一般用 setVisibility 方法来动态控制图层的显示和隐藏。
drawFeature 在当前图层中绘制一个feature。如果参数中的样式(style)被设置 则使用。否则使用矢量要素的样式。如果未设置要素的样式,则使用图层上的样式。
getDataExtent 计算所有要素集的最大范围。
getFeatureById 通过给定一个id,返回对应的矢量要素。
getFeaturesByAttribute 通过给定一个属性的key值和value值,返回所有匹配的要素数组。
redraw 重绘该图层,成功则返回true,否则返回false。
removeAllFeatures 清除当前图层所有的矢量要素。
removeFeatures 从当前图层中删除feature。这个函数擦除所有传递进来的矢量要素。 参数中的features数组中的每一项,必须是已经添加到当前图层中的feature, 如果无法确定feature数组,则可以调用removeAllFeatures来删除所有feature。 如果要删除的feature数组中的元素特别多,推荐使用removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。

Constants

EVENT_TYPES

{Array(String)} 此类支持的事件类型 Examples:

layer.events.register(type, obj, listener);
//或者
layer.events.on({type:callback});

支持的map事件(也包括其他继承自<SuperMap.Layer>的事件)

beforefeatureadded 一个要素被添加到图层之前触发此事件。 Listeners 监听者都将被接收到一个对象,其中’feature’属性引用了被添加到图层上的要素, 如果要防止要素被添加,可以在回调函数中返回false。
beforefeaturesadded 一个数组的要素被添加到图层之前触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被添加到图层上的要素, 如果要防止要素被添加,可以在回调函数中返回false。
featureadded 一个要素被添加到图层之后触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被添加到图层上的要素
featuresadded 一个数组的要素被添加到图层之后触发此事件。 The event 监听者都将被接收到一个对象,其中’feature’属性引用了被选中的要素数组
beforefeatureremoved 一个要素被从图层中移除之前触发此事件。 Listeners 监听者都将被接收到一个对象,其中’feature’属性引用了被删除的要素
beforefeaturesremoved 一个数组的要素被从图层中移除之前触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被删除的要素数组
featureremoved 一个要素被从图层中移除之后触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被删除的要素
featuresremoved 一个数组的要素被从图层中移除之后触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被删除的要素数组
beforefeatureselected 一个要素被选中之前触发此事件。 Listeners 监听者都将被接收到一个对象,其中’feature’属性引用了被选中的要素, 如果要防止要素被选中,可以在回调函数中返回false。
featureselected 一个要素被选中之后触发此事件。 Listeners 监听者都将被接收到一个对象,其中’feature’属性引用了被选中的要素
featureunselected 一个要素被取消选中之后触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被选中的要素
beforefeaturemodified 一个要素被编辑之前触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被编辑的要素
featuremodified 一个要素被编辑之后触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被编辑的要素
afterfeaturemodified 一个要素完成编辑之后触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被编辑的要素
vertexmodified 当任何一个要素的几何图形端点坐标被修改时触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被编辑的要素, ‘vertex’对象引用了被修改的端点(通常是一个点),以及’pixel’引用 了修改的坐标
vertexremoved 当任何一个要素的几何图形的端点被删除时触发此事件。 监听者都将被接收到一个对象,其中’feature’属性引用了被编辑的要素, ‘vertex’对象引用了被修改的端点(通常是一个点),以及’pixel’引用 了修改的坐标
sketchstarted - 当要素草图被创建时触发此事件,监听者将会接收到 一个包含’feature’属性和’vertex’属性的对象,其中’vertex’就是创建的第一个点。
sketchmodified 当要素草图被修改时触发此事件,比如鼠标移动时,草图会一直被修改, 都会触发此事件,监听者将会接收到 一个包含’feature’属性和’vertex’属性的对象。
sketchaddvertex 当要素草图新添加了一个端点时触发此事件,监听者将会接收到 一个包含’feature’属性和’vertex’属性的对象。
sketchcomplete 当要素草图完成创建时(一般是指双击完成草图的创建)触发此事件,监听者将会接收到 一个包含’feature’属性和’vertex’属性的对象,如果监听者在回调函数中返回了’false’,则不会被此草图 添加到图层中去。
refresh 当需要使用strategy来通过某种协议来获取要素时触发。
featuremove 要素绘制过程中,移动要素时触发此事件
featurerotate 要素绘制过程中,旋转要素时触发此事件
featureresize 要素绘制过程中,缩放要素时触发此事件

Properties

isBaseLayer

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

isFixed

{Boolean} 设置当前图层在鼠标拖动及放大缩小时位置是否固定,默认为 false。

clipFeature

{Boolean} 是否对要素进行裁剪,当图层使用SVG或者VML渲染时候有效,默认为true。注意此属性在Canvas渲染时无效,Canvas图层不进行裁剪。

features

{Array(SuperMap.Feature.Vector)}用于存放矢量要素。

reportError

{Boolean} 当读取渲染器失败时,是否发送友好的的错误消息,默认为true。

style

{Object} 当前图层的默认样式。

styleMap

{SuperMap.StyleMap} 适用于图层的样式组,包含不同状态下的样式信息,使用方式参考 SuperMap.StyleMap

renderers

{Array(String)} 可支持渲染器的列表,支持的渲染方式有’SVG’, ‘VML’, ‘Canvas’,’Canvas2’ 如果在可选属性中未设置 ‘renderer’ 选项,则使用当前浏览器支持的此列表中的第一个渲染方式。 Canvas、Canvas2 渲染方式均是基于 Html5 Canvas 实现的,若使用这两种方式渲染矢量数据的话需要选用支持Html5 Canvas的浏览器。其中,Canvas2 是对 Canvas 在性能上的优化,Canvas2 只绘制发生变化的瓦片,减少了重绘次数, 提高了绘制速度,而且对于数量在10000以上的矢量要素,采用分块显示,增强了用户体验效果。 相对于Canvas,建议使用Canvas2渲染方式。 这几种渲染方式都可以实现对要素的编辑,在IE9以下建议用 SVG、VML 两种渲染方式,其他浏览器建议使用Canvas渲染。

rendererOptions

{Object} 渲染器的可选属性。

geometryType

{String} geometryType可以设置此图层几何形状的限制, 比如可以设置为 “SuperMap.Geometry.Point” 进行限制。

ratio

{Float} 设置矢量要素在图层中与map上的比例,默认为1。

transition

{Boolean} 是否使用缩放动画,默认为true。 缩放动画只在使用Canvas2渲染时有效。

Constructor

SuperMap.Layer.Vector

创建一个矢量图层。

//创建一个名为“Vector Layer”    、采用 Canvas2 渲染方式渲染的矢量图层。
 var vectorLayer = new SuperMap.Layer.Vector("Vector Layer", {renderers: ["Canvas2"]});

Parameters

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

Returns

{SuperMap.Layer.Vector} 新的矢量图层。

Functions

destroy

destroy: function()

销毁Vector图层,释放资源。

redraw

redraw: function()

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

Returns

{Boolean} 重绘该图层。

display

display: function( display )

临时隐藏或者显示图层。通过对CSS控制产生即时效果,重新渲染失效。 一般用 setVisibility 方法来动态控制图层的显示和隐藏。

Parameters

display {Boolean}true代表不隐藏,false代表隐藏。
vectorLayer.display(true/false);

addFeatures

addFeatures: function( features,
options )

给这个图层添加features。

Parameters

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

removeFeatures

removeFeatures: function( features )

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

Parameters

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

removeAllFeatures

removeAllFeatures: function()

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

drawFeature

drawFeature: function( feature,
style,
option )

在当前图层中绘制一个feature。如果参数中的样式(style)被设置 则使用。否则使用矢量要素的样式。如果未设置要素的样式,则使用图层上的样式。

当要素的样式更改或者要素已经添加到图层上需要更新时使用该函数。

Parameters

feature {SuperMap.Feature.Vector}需要绘制的要素
style {String | Object} 风格

getFeatureById

getFeatureById: function( featureId )

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

Parameters

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

Returns

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

getFeaturesByAttribute

getFeaturesByAttribute: function( attrName,
attrValue )

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

Parameters

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

Returns

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

getDataExtent

getDataExtent: function ()

计算所有要素集的最大范围。

Returns

{SuperMap.Bounds} 如果没有feature则返回null,否则返回 所有feature的geometry的最大范围。

矢量要素类。该类具有 Geometry 属性存放几何信息, attributes 属性存放非几何信息,另外还包含了 style 属性,用来定义矢量要素的样式, 其中,默认的样式在 SuperMap.Feature.Vector.style 类中定义,如果没有特别的指定将使用默认的样式,
图层样式组类,定义vector图层不同状态下的样式信息。属性styles中存储由key(‘state’), value(‘Style’) 组成的状态-样式键值对信息。
destroy: function()
销毁Vector图层,释放资源。
redraw: function()
重绘该图层,成功则返回true,否则返回false。
display: function( display )
临时隐藏或者显示图层。通过对CSS控制产生即时效果,重新渲染失效。 一般用 setVisibility 方法来动态控制图层的显示和隐藏。
addFeatures: function( features,
options )
给这个图层添加features。
removeFeatures: function( features )
从当前图层中删除feature。这个函数擦除所有传递进来的矢量要素。 参数中的features数组中的每一项,必须是已经添加到当前图层中的feature, 如果无法确定feature数组,则可以调用removeAllFeatures来删除所有feature。 如果要删除的feature数组中的元素特别多,推荐使用removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
removeAllFeatures: function()
清除当前图层所有的矢量要素。
drawFeature: function( feature,
style,
option )
在当前图层中绘制一个feature。如果参数中的样式(style)被设置 则使用。否则使用矢量要素的样式。如果未设置要素的样式,则使用图层上的样式。
getFeatureById: function( featureId )
通过给定一个id,返回对应的矢量要素。
getFeaturesByAttribute: function( attrName,
attrValue )
通过给定一个属性的key值和value值,返回所有匹配的要素数组。
getDataExtent: function ()
计算所有要素集的最大范围。
图层类。
创建一个矢量图层。
表示边界类实例。使用bounds之前需要设置left,bottom, right, top四个属性,这些属性的初始值为null。
Close