该图层用于渲染矢量要素。
SuperMap. |
该图层用于渲染矢量要素。 |
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. |
创建一个矢量图层。 |
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后再重新添加。这样效率会更高。 |
{Array(String)} 此类支持的事件类型 Examples:
layer.events.register(type, obj, listener); //或者 layer.events.on({type:callback});
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 | 要素绘制过程中,缩放要素时触发此事件 |
{Array(SuperMap.Feature.Vector)}用于存放矢量要素。
{SuperMap.StyleMap} 适用于图层的样式组,包含不同状态下的样式信息,使用方式参考 SuperMap.StyleMap
{Array(String)} 可支持渲染器的列表,支持的渲染方式有’SVG’, ‘VML’, ‘Canvas’,’Canvas2’ 如果在可选属性中未设置 ‘renderer’ 选项,则使用当前浏览器支持的此列表中的第一个渲染方式。 Canvas、Canvas2 渲染方式均是基于 Html5 Canvas 实现的,若使用这两种方式渲染矢量数据的话需要选用支持Html5 Canvas的浏览器。其中,Canvas2 是对 Canvas 在性能上的优化,Canvas2 只绘制发生变化的瓦片,减少了重绘次数, 提高了绘制速度,而且对于数量在10000以上的矢量要素,采用分块显示,增强了用户体验效果。 相对于Canvas,建议使用Canvas2渲染方式。 这几种渲染方式都可以实现对要素的编辑,在IE9以下建议用 SVG、VML 两种渲染方式,其他浏览器建议使用Canvas渲染。
创建一个矢量图层。
//创建一个名为“Vector Layer” 、采用 Canvas2 渲染方式渲染的矢量图层。 var vectorLayer = new SuperMap.Layer.Vector("Vector Layer", {renderers: ["Canvas2"]});
name | {String} 此图层的图层名。 |
options | {Object} 此类与父类提供的属性。 |
{SuperMap.Layer.Vector} 新的矢量图层。
addFeatures: function( features, options )
给这个图层添加features。
features | {Array(SuperMap.Feature.Vector)}需要添加的要素数组。 |
removeFeatures: function( features )
从当前图层中删除feature。这个函数擦除所有传递进来的矢量要素。 参数中的features数组中的每一项,必须是已经添加到当前图层中的feature, 如果无法确定feature数组,则可以调用removeAllFeatures来删除所有feature。 如果要删除的feature数组中的元素特别多,推荐使用removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
features | {Array(SuperMap.Feature.Vector)} 要删除feature的数组。 |
drawFeature: function( feature, style, option )
在当前图层中绘制一个feature。如果参数中的样式(style)被设置 则使用。否则使用矢量要素的样式。如果未设置要素的样式,则使用图层上的样式。
当要素的样式更改或者要素已经添加到图层上需要更新时使用该函数。
feature | {SuperMap.Feature.Vector}需要绘制的要素 |
style | {String | Object} 风格 |
getFeatureById: function( featureId )
通过给定一个id,返回对应的矢量要素。
featureId | {String}矢量要素的属性id。 |
{SuperMap.Feature.Vector} 对应id的feature,如果不存在则返回null。
getFeaturesByAttribute: function( attrName, attrValue )
通过给定一个属性的key值和value值,返回所有匹配的要素数组。
attrName | {String}属性的key。 |
attrValue | {Mixed}属性对应的value值。 |
Array(SuperMap.Feature.Vector) 一个匹配的feature数组。
getDataExtent: function ()
计算所有要素集的最大范围。
{SuperMap.Bounds} 如果没有feature则返回null,否则返回 所有feature的geometry的最大范围。
销毁Vector图层,释放资源。
destroy: function()
重绘该图层,成功则返回true,否则返回false。
redraw: function()
临时隐藏或者显示图层。通过对CSS控制产生即时效果,重新渲染失效。 一般用 setVisibility 方法来动态控制图层的显示和隐藏。
display: function( display )
给这个图层添加features。
addFeatures: function( features, options )
从当前图层中删除feature。这个函数擦除所有传递进来的矢量要素。 参数中的features数组中的每一项,必须是已经添加到当前图层中的feature, 如果无法确定feature数组,则可以调用removeAllFeatures来删除所有feature。 如果要删除的feature数组中的元素特别多,推荐使用removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
removeFeatures: function( features )
清除当前图层所有的矢量要素。
removeAllFeatures: function()
在当前图层中绘制一个feature。如果参数中的样式(style)被设置 则使用。否则使用矢量要素的样式。如果未设置要素的样式,则使用图层上的样式。
drawFeature: function( feature, style, option )
通过给定一个id,返回对应的矢量要素。
getFeatureById: function( featureId )
通过给定一个属性的key值和value值,返回所有匹配的要素数组。
getFeaturesByAttribute: function( attrName, attrValue )
计算所有要素集的最大范围。
getDataExtent: function ()