com.supermap.realspace

类 Layer3D

  • java.lang.Object
    • com.supermap.realspace.Layer3D
  • 直接已知子类:
    Layer3DDataset, Layer3DDynamicObject, Layer3DMap, Layer3DOSGBFile


    public class Layer3D
    extends java.lang.Object
    三维图层类。

    该类提供了三维图层显示和控制等便于三维地图管理的一系列设置方法。

    三维图层种类有以下几种:数据集类型三维图层、地图类型三维图层、KML 类型三维图层、影像文件类型三维图层、模型缓存类型三维图层和矢量文件图层。各种类型三维图层可以叠加在一起显示。

    三维图层类提供了对三维图层的显示、选择等状态的控制,可以实现控制图层是否可选择,是否显示,还可以利用该类提供的方法返回图层中被选择的对象集合等。

    • 构造器概要

      构造器 
      构造器和说明
      Layer3D() 
    • 方法概要

      所有方法 实例方法 具体方法 
      限定符和类型 方法和说明
      void clearCustomClipPlane()
      清除裁剪面
      void clipByBox(GeoBox box, BoxClipPart part)
      根据指定的长方体盒子和裁剪区域对图层的可渲染部分进行裁剪
      Rectangle2D getBounds()
      返回图层的范围。
      java.lang.String getCaption()
      返回三维图层的标题。
      java.lang.String getDataName()
      返回图层所使用数据的名称。
      Feature3Ds getFeatures()
      返回树状结构的三维要素集合对象。
      FieldInfos getFieldInfos()
      返回三维矢量图层的属性字段信息集合对象。
      java.lang.String getName()
      返回三维图层的名称。
      Selection3D getSelection()
      返回三维图层的选择集。
      Rectangle2D getSwipeRegion()
      获取开启卷帘的区域
      Layer3DType getType()
      返回三维图层的类型。
      boolean getVisibleInViewport(int index)
      获取当前三维图层在指定视口的可见性。
      boolean isReleaseWhenInvisible()
      返回该图层是否在隐藏时释放内存
      boolean isSelectable()
      返回三维图层中的对象是否可以选择。
      boolean isSwipeEnable()
      获取是否开启卷帘功能
      boolean isVisible()
      返回该三维图层是否可显示。
      void setClipLineColor(Color value)
      设置裁剪边线颜色。
      void setCustomClipCross(Point3D point3d, Point2D point2d, double rotx, double roty, double rotz, double extrudeDistance)
      corss裁剪分析,根据中心点,裁剪区域宽高,裁剪面绕X轴旋转角度,裁剪面绕Y轴旋转角度,裁剪面绕Z轴旋转角度,裁剪区域中心点的拉伸距离进行裁剪。
      void setCustomClipPlane(Point3D firstPoint, Point3D secondPoint, Point3D thirdPoint)
      裁剪面分析,按顺序设置三个顶点的位置,裁剪面分析的结果指只显示该面法线方向的部分, 法线遵循右手法则,逆时针法线朝上,顺时针法线朝下,分析结果只显示大拇指方向上的模型结构。
      void setMaxObjectVisibleDistance(double value)
      设置当前图层内矢量对象的最大可见距离。
      void setReleaseWhenInvisible(boolean value)
      设置该图层是否在隐藏时释放内存,该属性为 False 表示3D图层隐藏后不释放内存。
      void setSelectable(boolean value)
      返回三维图层中的对象是否可以选择。
      void setSwipeEnable(boolean enable)
      设置是否开启卷帘功能
      void setSwipeRegion(Rectangle2D rec)
      设置开启卷帘的区域
      void setVisible(boolean value)
      设置该三维图层是否可显示。
      void setVisibleInViewport(int index, boolean value)
      设置当前三维图层在指定视口的可见性。
      • 从类继承的方法 java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • Layer3D

        public Layer3D()
    • 方法详细资料

      • getName

        public java.lang.String getName()
        返回三维图层的名称。

        三维图层的名称在三维图层所在的三维地图中唯一标识此图层。该标识不区分大小写。

        返回:
        三维图层的名称。
      • getCaption

        public java.lang.String getCaption()
        返回三维图层的标题。

        三维图层的标题为该图层的显示名称,例如在图例或排版制图时显示的图层的名称即为图层的标题。注意与三维图层的名称相区别。

        返回:
        三维图层的标题。
      • getType

        public Layer3DType getType()
        返回三维图层的类型。有关三维图层的类型,请参见 Layer3DType 类。
        返回:
        三维图层的类型。
      • isSelectable

        public boolean isSelectable()
        返回三维图层中的对象是否可以选择。true 表示可用鼠标选择相应三维图层中的对象,false 表示该三维图层中的对象不可选。
        返回:
        三维图层中的对象是否可以选择。
      • setSelectable

        public void setSelectable(boolean value)
        返回三维图层中的对象是否可以选择。true 表示可用鼠标选择相应三维图层中的对象,false 表示该三维图层中的对象不可选。
        参数:
        value - 一个布尔值,指定三维图层是否可选择。
      • isVisible

        public boolean isVisible()
        返回该三维图层是否可显示。
        返回:
        一个布尔值,表示该三维图层是否可显示。false 表示该三维图层不可见;true 表示可见。
        Default:
        默认值为 false,即该三维图层不可见。
      • setVisible

        public void setVisible(boolean value)
        设置该三维图层是否可显示。false 表示该三维图层不可见;true 表示可见。
        参数:
        value - 一个布尔值,指定三维图层是否可显示。
      • getFieldInfos

        public FieldInfos getFieldInfos()
        返回三维矢量图层的属性字段信息集合对象。
        返回:
        Selection3D
      • getSelection

        public Selection3D getSelection()
        返回三维图层的选择集。详细信息,请参见 Selection3D 类。
        返回:
        三维图层的选择集。
      • getBounds

        public Rectangle2D getBounds()
        返回图层的范围。

        对于KML图层,该方法返回全球范围{ -180, 90, 180, -90}。

        返回:
        图层的范围。
      • getFeatures

        public Feature3Ds getFeatures()
        返回树状结构的三维要素集合对象。只针对 KML 类型的三维图层有效,对于其他类型的三维图层返回值为 null。

        下图为一个三维要素集合(Feature3Ds),由图可以看出三维要素集合包括两个部分,一个是三维要素集合的子对象(即树的分枝及枝上的叶子),另一个是三维要素对象(主枝干上的叶子)。每个叶子就是一个三维要素(Feature3D)对象。 1是主干,2、3、4均是枝干。

        返回:
        树状结构的三维要素集合对象。
      • isReleaseWhenInvisible

        public boolean isReleaseWhenInvisible()
        返回该图层是否在隐藏时释放内存
        返回:
        该图层是否在隐藏时释放内存,该属性为 False 表示3D图层隐藏后不释放内存。
      • setReleaseWhenInvisible

        public void setReleaseWhenInvisible(boolean value)
        设置该图层是否在隐藏时释放内存,该属性为 False 表示3D图层隐藏后不释放内存。
        参数:
        value - 该图层是否在隐藏时释放内存。
      • getDataName

        public java.lang.String getDataName()
        返回图层所使用数据的名称。
        返回:
        数据名称。数据来源于文件时,返回文件全路径名;来源于数据集时,返回“DatasetName@DatasourceAlias”格式的名称;数据来源于Map时,返回地图名称。
      • setVisibleInViewport

        public void setVisibleInViewport(int index,
                                         boolean value)
        设置当前三维图层在指定视口的可见性。设置图层在某一视口中可见,在另一视口不可见,可实现图层的对比显示效果。
        参数:
        index - 指定的视口索引
        value - 指定可见性,true表示可见,false表示不可见。
      • getVisibleInViewport

        public boolean getVisibleInViewport(int index)
        获取当前三维图层在指定视口的可见性。
        参数:
        index - 指定的视口索引。
        返回:
        true表示可见,否则为false。
      • clipByBox

        public void clipByBox(GeoBox box,
                              BoxClipPart part)
        根据指定的长方体盒子和裁剪区域对图层的可渲染部分进行裁剪
        参数:
        box - 指定的长方体盒子
        part - 指定裁剪区域
      • setCustomClipPlane

        public void setCustomClipPlane(Point3D firstPoint,
                                       Point3D secondPoint,
                                       Point3D thirdPoint)
        裁剪面分析,按顺序设置三个顶点的位置,裁剪面分析的结果指只显示该面法线方向的部分, 法线遵循右手法则,逆时针法线朝上,顺时针法线朝下,分析结果只显示大拇指方向上的模型结构。
        参数:
        firstPoint - 第一个点
        secondPoint - 第二个点
        thirdPoint - 第三个点
      • clearCustomClipPlane

        public void clearCustomClipPlane()
        清除裁剪面
      • setCustomClipCross

        public void setCustomClipCross(Point3D point3d,
                                       Point2D point2d,
                                       double rotx,
                                       double roty,
                                       double rotz,
                                       double extrudeDistance)
        corss裁剪分析,根据中心点,裁剪区域宽高,裁剪面绕X轴旋转角度,裁剪面绕Y轴旋转角度,裁剪面绕Z轴旋转角度,裁剪区域中心点的拉伸距离进行裁剪。
        参数:
        point3d - 中心点位置坐标。
        point2d - 裁剪区域宽高。
        rotx - 裁剪面绕X轴旋转角度。
        roty - 裁剪面绕Y轴旋转角度。
        rotz - 裁剪面绕Z轴旋转角度。
        extrudeDistance - 裁剪区域中心点的拉伸距离。
      • setClipLineColor

        public void setClipLineColor(Color value)
        设置裁剪边线颜色。
        参数:
        value - 指定的颜色。
      • getSwipeRegion

        public Rectangle2D getSwipeRegion()
        获取开启卷帘的区域
        返回:
        卷帘区域,一个Rectangle2D对象
      • setSwipeRegion

        public void setSwipeRegion(Rectangle2D rec)
        设置开启卷帘的区域
        参数:
        rec - 卷帘区域,一个Rectangle2D对象
      • setSwipeEnable

        public void setSwipeEnable(boolean enable)
        设置是否开启卷帘功能
        参数:
        enable - 是否开启卷帘功能,true表示开启卷帘功能,false表示不开启。
      • isSwipeEnable

        public boolean isSwipeEnable()
        获取是否开启卷帘功能
        返回:
        该图层是否开启卷帘功能,true表示开启卷帘功能,false表示不开启。
      • setMaxObjectVisibleDistance

        public void setMaxObjectVisibleDistance(double value)
        设置当前图层内矢量对象的最大可见距离。
        参数:
        value - 指定最大可见距离的值。