com.supermap.web.mapping
public class ElementsLayer
继承 ElementsLayer Inheritance Layer Inheritance mx.core.UIComponent

Flex 元素图层.

该类专用于承载显示 Element 类型的可视组件元素。可以添加 Adobe Flex 提供的所有可视组件,比如 Button、Rectangle;可以添加图片、音频和视频;可以添加自定义的任意 Flex 元素。

默认 MXML 属性elements

另请参见

com.supermap.web.core.Element


公共属性
  属性 定义方
    bounds : Rectangle2D
[Override] 当前图层的地理范围,若当前图层为 Map 的第一个图层,且 Map 的 ViewBounds 为 null,则将当前图层的 bounds 作为 Map 的 ViewBounds。一般情况下该属性默认值为(0,0,0,0)。若当前图层为 WMTS 图层(TiledWMTSLayer),则 bounds 的默认值参考 WMTS 标准而定...
ElementsLayer
  Inherited CRS : CoordinateReferenceSystem
获取或设置当前图层的坐标参考系( CoordinateReferenceSystem )。默认值为 null。设置 CoordinateReferenceSystem.wkid 属性后,图层将被动态投影至 wkid 所代表的投影坐标系下,若 wkid 小于等于 0 则不进行动态投影...
Layer
    elements : ArrayCollection
获取或设置元素图层 ElementsLayer 上的所有元素 Element。
ElementsLayer
    graduatedCount : int
获取或设置加载元素时,划分多少次来逐级显示元素,此属性只在通过 elements 属性来加载要素时生效...
ElementsLayer
    isAutoAvoidance : Boolean
设置ElementsLayer上的元素是否自动避让。(SuperMap iServer 7.0及以上版本支持)
ElementsLayer
    isAvoidByPixel : Boolean
获取或设置是否使用像素单位来进行避让,默认值为false。
ElementsLayer
    isElementsZoomWithMap : Boolean
指定元素地理范围是否随地图一起缩放,若该属性值为 true,则表示此元素的地图范围随地图一起缩放。
ElementsLayer
  Inherited isInResolutionRange : Boolean
[read-only] 判断与当前图层关联的 Map 的分辨率是否在当前图层的最大、最小分辨率范围内。true 表示在最大、最小范围内。
Layer
    isPanEnableOnElement : Boolean
指定鼠标焦点在元素(Element)上时是否可以进行地图平移操作。默认值为:false,表示鼠标焦点在元素上时不可进行地图平移操作,仅当鼠标焦点落在元素以外的地图范围内方可平移地图。
ElementsLayer
  Inherited isScaleCentric : Boolean
[read-only] 指示该图层是否有 DPI 值,ture 表示当前图层已根据从 SuperMap iServer 服务端获取的参数计算出 DPI;false 反之。WMS、WMTS 等图层该属性值为 false。DynamicRESTLayer、TiledDynamicRESTLayer 等专门关联 SuperMap iServer 服务的图层该属性为 true。
Layer
    isViewportClip : Boolean
是否对 ElementsLayer 上不在可视范围内的元素 Element 进行裁剪,即对不在可视范围内的元素不进行更新和显示.
ElementsLayer
  Inherited loaded : Boolean
[read-only] 若当前图层已加载完闭则返回 true,否则返回 false。
Layer
  Inherited maxVisibleResolution : Number
当前图层的最大显示分辨率。即当图层缩放至该分辨率时就不能再放大。
Layer
  Inherited metadata : Object
获取或设置当前图层信息,包括图层标题、描述信息、图层所在地图控件名称。
Layer
  Inherited minVisibleResolution : Number
当前图层的最小显示分辨率。即当图层缩放至该分辨率时就不能再缩小。
Layer
    numElements : int
[read-only] 获取或设置元素图层 ElementsLayer 上的元素个数。
ElementsLayer
    referenceHeight : Number
获取或设置ElementsLayer上元素自动避让的参考对象高度,默认值为0。
ElementsLayer
    referenceR : Number
获取或设置ElementsLayer上元素自动避让的初始偏移距离,默认为0.7 * referenceWidth。
ElementsLayer
    referenceWidth : Number
获取或设置ElementsLayer上元素自动避让的参考对象宽度,默认值为0。
ElementsLayer
  Inherited resolution : Number
[read-only] 获取当前图层的显示分辨率。
Layer
  Inherited url : String
图层所在的服务地址。
Layer
  Inherited visible : Boolean
[Override] 获取或设置当前图层是否可见。
Layer
受保护的属性
  属性 定义方
  Inherited dpi : Number
获取当前图层的扫描精度,即单位面积内的像素的个数...
Layer
公共方法
  方法 定义方
   
初始化 ElementsLayer 类的新实例。
ElementsLayer
   
addComponent(component:DisplayObject, bBox:Rectangle2D, offset:Point = null):String
添加可视组件,并返回用于唯一标识该对象的 id。.
ElementsLayer
   
addComponentAt(component:DisplayObject, index:int, bBox:Rectangle2D, offset:Point = null):String
将可视组件添加至指定索引位置处,并返回用于唯一标识该对象的 id.
ElementsLayer
   
addElement(element:Element):String
添加元素,并返回用于唯一标识元素的 id。
ElementsLayer
   
addElementAt(element:Element, index:int):String
将元素添加至指定索引位置处,并返回用于唯一标识元素的 id
ElementsLayer
   
clear():void
清除元素图层。
ElementsLayer
   
获取指定位置处的元素。
ElementsLayer
   
通过元素 ID 获取元素。
ElementsLayer
   
获取指定元素在 elements 中的索引位置。
ElementsLayer
   
moveElement(element:Element, index:int):void
将指定元素移动至指定的索引位置。
ElementsLayer
   
moveElementAt(fromIndex:int, toIndex:int):void
将指定位置处的元素移动至另一位置 。
ElementsLayer
   
moveToTop(element:Element):void
将指定的元素移动至 ElementsLayer 的顶层。即 elements 的尾部。
ElementsLayer
  Inherited
refresh():void
刷新图层,即调用 Layer.invalidateDisplayList() 方法(详情请参见 Flex SDK UIComponent.invalidateDisplayList() 方法),更新 Layer 的显示列表。对于 GraphicsLayer 调用该方法会对 GraphicsLayer 上所有显示对象 Graphic 进行重绘。
Layer
   
移除元素,并返回该元素。
ElementsLayer
   
移除指定位置处的元素,并返回该元素。
ElementsLayer
受保护的方法
  方法 定义方
  Inherited
addedHandler(event:Event):void
处理 Event.ADDED 事件的侦听器函数。
Layer
   
[Override] 为当前图层添加事件侦听器,以使侦听器能够接收 ZoomEvent、 ViewBoundsEvent 事件的触发通知。
ElementsLayer
   
draw():void
[Override] 渲染出图,注意:子类必须重写该方法来实现渲染出图。
ElementsLayer
   
enterFrameHandler(event:Event):void
Event.ENTER_FRAME 事件的侦听函数。
ElementsLayer
  Inherited
hideHandler(event:FlexEvent):void
处理 FlexEvent.HIDE 事件的侦听器函数。
Layer
  Inherited
通过子类调用以更新图层。
Layer
  Inherited
删除 Layer 上的所有对象。
Layer
  Inherited
removedHandler(event:Event):void
处理 Event.REMOVED 事件的侦听器函数。
Layer
   
[Override] 移除通过 addMapListeners 添加的事件侦听器。
ElementsLayer
  Inherited
setLoaded(value:Boolean):void
设置图层是否加载完闭,会触发 LayerEvent.LOAD 事件。true 表示当前图层已加载完毕。注意:任何继承 Layer 的子类都必须在 Layer 初始化完成之后调用该接口设置对应的图层是否加载完毕。
Layer
   
showHandler(event:FlexEvent):void
[Override] 处理 FlexEvent.SHOW 事件的侦听器函数。
ElementsLayer
  Inherited
处理 viewBoundsChanged 事件的侦听器函数。
Layer
   
[Override] 处理 zoomEnd 事件的侦听器函数。
ElementsLayer
   
[Override] 处理 zoomStart 事件的侦听器函数。
ElementsLayer
  Inherited
处理 zoomUpdate 事件的侦听器函数。
Layer
事件
  事件 Summary 定义方
    当在 FeatureLayer 中添加矢量要素时触发该事件。 ElementsLayer
    当在 FeatureLayer 中删除矢量要素时触发该事件。 ElementsLayer
    当移除在 FeatureLayer 中所有矢量要素时触发该事件。 ElementsLayer
    当移除在 FeatureLayer 中所有矢量要素时触发该事件。 ElementsLayer
  Inherited 当 Layer 的 IsInResolutionRange 属性发生变化时触发该事件。 Layer
  Inherited 当图层初始化完成时触发该事件。 Layer
  Inherited 当载入图层出错时触发该事件。 Layer
  Inherited 当图层最大显示分辨率改变时触发该事件。 Layer
  Inherited 当图层最小显示分辨率改变时触发该事件。 Layer
  Inherited 当完成更新图层时触发该事件。 Layer
  Inherited 当更新图层开始时触发该事件。 Layer
  Inherited 当图层的 visible 属性发生改变时触发该事件。 Layer
属性详细信息
bounds 属性
bounds:Rectangle2D[Override]

当前图层的地理范围,若当前图层为 Map 的第一个图层,且 Map 的 ViewBounds 为 null,则将当前图层的 bounds 作为 Map 的 ViewBounds。一般情况下该属性默认值为(0,0,0,0)。若当前图层为 WMTS 图层(TiledWMTSLayer),则 bounds 的默认值参考 WMTS 标准而定...

有关 TiledWMTSLayer::bounds 属性的默认值如下表所示:


其中 GlobalCRS84Scale、GlobalCRS84Pixel、GlobalCRS84Qud、GoogleMapsCompatible 为 OGC WMTS 标准中的四个比例尺集类型;custom 为用户自定义 WMTS,如 SuperMap iServer Java 6R 默认提供的 wmts-china 服务实例,即为一种自定义的 WMTS 服务,其数据组织方式与 OGC WMTS 标准相同,不同之处在于其比例尺集遵循的是国家测绘局发布的一组比例尺;当然,用户可根据实际需求,自定义比例尺数组创建 custom 类型的 WMTS 服务。

TiledWMTSLayer 是一种缓存图层,这意味着组成地图的各个瓦片是事先缓存好的。如下图所示,在某一级别下地图被缓存为6行6列,其中红色边框代表切图范围(-180,-90,180,90),绿色边框代表地图的实际范围(-60,-60,120,30),在此 TiledWMTSLayer::bounds 属性所指的是切图范围,因此在使用 TiledWMTSLayer 时,首先确保所访问的WMTS图层的切图范围是否与默认值相同,若不同则该属性为必设


如何获取 WMTS 服务的切图范围:
1)SuperMap iServer Java 6R 有关切图范围可在[SuperMap iServer Java 6R服务产品包]webappsiserverWEB-INFconfig目录下的 service.xml 文件中 WMTS 服务接口中获取或配置,如下图红框所示:

若WMTS服务接口中没有该信息,则默认使用地图的实际范围;详情可参见 SuperMap iServer Java 6R 帮助文档。
2)如果使用其它服务产品,请参考其帮助文档。


Implementation
    public function get bounds():Rectangle2D
    public function set bounds(value:Rectangle2D):void
elements 属性  
elements:ArrayCollection

获取或设置元素图层 ElementsLayer 上的所有元素 Element。


Implementation
    public function get elements():ArrayCollection
    public function set elements(value:ArrayCollection):void

另请参见

graduatedCount 属性  
graduatedCount:int

获取或设置加载元素时,划分多少次来逐级显示元素,此属性只在通过 elements 属性来加载要素时生效...

对于使用 addElement 或 addElementAt 等方法加载一个要素时不生效。该属性默认值为 1 ,表示一次性全部加载显示。


Implementation
    public function get graduatedCount():int
    public function set graduatedCount(value:int):void

另请参见

isAutoAvoidance 属性  
isAutoAvoidance:Boolean

设置ElementsLayer上的元素是否自动避让。(SuperMap iServer 7.0及以上版本支持)


Implementation
    public function get isAutoAvoidance():Boolean
    public function set isAutoAvoidance(value:Boolean):void
isAvoidByPixel 属性  
isAvoidByPixel:Boolean

获取或设置是否使用像素单位来进行避让,默认值为false。


Implementation
    public function get isAvoidByPixel():Boolean
    public function set isAvoidByPixel(value:Boolean):void
isElementsZoomWithMap 属性  
isElementsZoomWithMap:Boolean

指定元素地理范围是否随地图一起缩放,若该属性值为 true,则表示此元素的地图范围随地图一起缩放。

默认值为: false.


Implementation
    public function get isElementsZoomWithMap():Boolean
    public function set isElementsZoomWithMap(value:Boolean):void
isPanEnableOnElement 属性  
isPanEnableOnElement:Boolean

指定鼠标焦点在元素(Element)上时是否可以进行地图平移操作。默认值为:false,表示鼠标焦点在元素上时不可进行地图平移操作,仅当鼠标焦点落在元素以外的地图范围内方可平移地图。


Implementation
    public function get isPanEnableOnElement():Boolean
    public function set isPanEnableOnElement(value:Boolean):void
isViewportClip 属性  
isViewportClip:Boolean

是否对 ElementsLayer 上不在可视范围内的元素 Element 进行裁剪,即对不在可视范围内的元素不进行更新和显示.

当该属性值为 true 时,表示对不在可视范围内的元素 Element 进行裁剪。当地图可视范围发生变化时,则实时更新可视范围内被裁剪掉的元素 Element。默认值为 true。

默认值为: true.


Implementation
    public function get isViewportClip():Boolean
    public function set isViewportClip(value:Boolean):void
numElements 属性  
numElements:int  [read-only]

获取或设置元素图层 ElementsLayer 上的元素个数。


Implementation
    public function get numElements():int
referenceHeight 属性  
referenceHeight:Number

获取或设置ElementsLayer上元素自动避让的参考对象高度,默认值为0。


Implementation
    public function get referenceHeight():Number
    public function set referenceHeight(value:Number):void
referenceR 属性  
referenceR:Number

获取或设置ElementsLayer上元素自动避让的初始偏移距离,默认为0.7 * referenceWidth。


Implementation
    public function get referenceR():Number
    public function set referenceR(value:Number):void
referenceWidth 属性  
referenceWidth:Number

获取或设置ElementsLayer上元素自动避让的参考对象宽度,默认值为0。


Implementation
    public function get referenceWidth():Number
    public function set referenceWidth(value:Number):void
构造函数详细信息
ElementsLayer () 构造函数
public function ElementsLayer()

初始化 ElementsLayer 类的新实例。

方法详细描述
addComponent () 方法
public function addComponent(component:DisplayObject, bBox:Rectangle2D, offset:Point = null):String

添加可视组件,并返回用于唯一标识该对象的 id。.

该方法的处理逻辑为:首先通过 component、bBox 参数封装一个 Element 对象,然后将此 Element 添加至元素图层中。

参数

component:DisplayObject — DisplayObject 组件。
 
bBox:Rectangle2D — 组件在元素图层中的显示区域。
 
offset:Point (default = null) — 组件在元素图层中绘制时的像素偏移量Point(x,y),x(y)为正,代表向下(右)偏移x(y)像素,为负代表向上(左)偏移x(y)像素,为0代表不偏移。默认为不偏移。

返回
String — id。
addComponentAt () 方法  
public function addComponentAt(component:DisplayObject, index:int, bBox:Rectangle2D, offset:Point = null):String

将可视组件添加至指定索引位置处,并返回用于唯一标识该对象的 id.

该方法的处理逻辑为:首先通过 component、bBox 参数封装一个 Element 对象,然后将此 Element 添加至元素图层中。

参数

component:DisplayObject — DisplayObject 组件。
 
index:int — 索引位置。
 
bBox:Rectangle2D — 组件在元素图层中的显示区域。
 
offset:Point (default = null) — 组件在元素图层中绘制时的像素偏移量Point(x,y),x(y)为正,代表向下(右)偏移x(y)像素,为负代表向上(左)偏移x(y)像素,为0代表不偏移。默认为不偏移。

返回
String — id。

另请参见

addElement () 方法  
public function addElement(element:Element):String

添加元素,并返回用于唯一标识元素的 id。

参数

element:Element — 被添加的元素。

返回
String — id。
addElementAt () 方法  
public function addElementAt(element:Element, index:int):String

将元素添加至指定索引位置处,并返回用于唯一标识元素的 id

参数

element:Element — 被添加的元素。
 
index:int — 索引位置。

返回
String — id。
addMapListeners () 方法  
override protected function addMapListeners():void

为当前图层添加事件侦听器,以使侦听器能够接收 ZoomEvent、 ViewBoundsEvent 事件的触发通知。

clear () 方法  
public function clear():void

清除元素图层。

draw () 方法  
override protected function draw():void

渲染出图,注意:子类必须重写该方法来实现渲染出图。

enterFrameHandler () 方法  
protected function enterFrameHandler(event:Event):void

Event.ENTER_FRAME 事件的侦听函数。

参数

event:Event

getElementAt () 方法  
public function getElementAt(index:int):Element

获取指定位置处的元素。

参数

index:int — 要获取的元素在 elements 中的索引位置。

返回
Element — 要获取的元素。
getElementByID () 方法  
public function getElementByID(id:String):Element

通过元素 ID 获取元素。

参数

id:String — 元素 ID。

返回
Element — 返回与 ID 对应的元素。
getElementIndex () 方法  
public function getElementIndex(element:Element):int

获取指定元素在 elements 中的索引位置。

参数

element:Element — 指定的元素。

返回
int — 指定元素在 elements 中的索引位置。

另请参见

moveElement () 方法  
public function moveElement(element:Element, index:int):void

将指定元素移动至指定的索引位置。

参数

element:Element — 被移动的元素。
 
index:int — 指定的索引位置,即被移动元素在属性 elements 中的索引位置。

另请参见

moveElementAt () 方法  
public function moveElementAt(fromIndex:int, toIndex:int):void

将指定位置处的元素移动至另一位置 。

参数

fromIndex:int — 被移动元素所处的位置。
 
toIndex:int — 移动的目标位置。

moveToTop () 方法  
public function moveToTop(element:Element):void

将指定的元素移动至 ElementsLayer 的顶层。即 elements 的尾部。

参数

element:Element — 被移动的元素。

另请参见

removeElement () 方法  
public function removeElement(element:Element):Element

移除元素,并返回该元素。

参数

element:Element — 被移除的、DisplayObject 类型的元素。

返回
Element — 被移除的元素。
removeElementAt () 方法  
public function removeElementAt(index:int):Element

移除指定位置处的元素,并返回该元素。

参数

index:int — 被移除元素在 elements 中的索引位置。

返回
Element — 被移除的元素。

另请参见

removeMapListeners () 方法  
override protected function removeMapListeners():void

移除通过 addMapListeners 添加的事件侦听器。

showHandler () 方法  
override protected function showHandler(event:FlexEvent):void

处理 FlexEvent.SHOW 事件的侦听器函数。

参数

event:FlexEvent

zoomEndHandler () 方法  
override protected function zoomEndHandler(event:ZoomEvent):void

处理 zoomEnd 事件的侦听器函数。

参数

event:ZoomEvent

zoomStartHandler () 方法  
override protected function zoomStartHandler(event:ZoomEvent):void

处理 zoomStart 事件的侦听器函数。

参数

event:ZoomEvent — ZoomEvent 事件类对象。

事件详细信息
elementAdd 事件
Event Object Type: com.supermap.web.events.ElementsLayerEvent

当在 FeatureLayer 中添加矢量要素时触发该事件。

elementRemove 事件  
Event Object Type: com.supermap.web.events.ElementsLayerEvent

当在 FeatureLayer 中删除矢量要素时触发该事件。

elementsChange 事件  
Event Object Type: com.supermap.web.events.ElementsLayerEvent

当移除在 FeatureLayer 中所有矢量要素时触发该事件。

featureRemoveAll 事件  
Event Object Type: com.supermap.web.events.ElementsLayerEvent

当移除在 FeatureLayer 中所有矢量要素时触发该事件。