com.supermap.data

类 GeoStyle

  • java.lang.Object
    • com.supermap.data.GeoStyle


  • public class GeoStyle
    extends java.lang.Object

    几何风格类。

    用于定义点状符号、线状符号、填充符号及其相关设置。对于文本对象只能设置文本风格,不能设置几何风格。

    该类的实例中只存储风格的 ID 值,具体的风格存储在相应的点状符号、线状符号、填充符号库中,有关点状符号、线状符号型、填充符号库详细介绍请参见开发指南 SuperMap iMobile 资源库一览。除复合数据集(CAD 数据集)之外,其他类型数据集都不存储几何对象的风格信息。

    填充模式分为普通填充模式和渐变填充模式。在普通填充模式下,可以使用图片或矢量符号等进行填充;在渐变填充模式下,有四种渐变类型可供选择:线性渐变填充,辐射渐变填充,圆锥渐变填充和四角渐变填充。

    该对象实例被 dispose() 后,再次调用该类的方法会抛出 ObjectDisposedException。

    Example:
    以下代码示范如何对点、线、面几何对象设置风格,并查看所设置的风格。
     public void geoStyleTest(){
            // 假设打开一个工作空间 workspace 对象。
            // 实例化一个线几何对象,并对其进行风格设置
            GeoStyle geoStyle_L = new GeoStyle();
            geoStyle_L.setLineColor(new Color(255,255,255));
            geoStyle_L.setLineSymbolID(15);
            geoStyle_L.setLineWidth(5.0);
            Point2Ds point2Ds = new Point2Ds();
            Point2D[] point2DArray = {new Point2D(100, 100), new Point2D(200, 100),
                                     new Point2D(100, 200), new Point2D(200, 200)};
            point2Ds.addRange(point2DArray);
            GeoLine geoLine = new GeoLine(point2Ds);
            geoLine.setStyle(geoStyle_L);
    
            // 实例化一个点几何对象,并对其进行风格设置
            GeoStyle geoStyle_P = new GeoStyle();
            geoStyle_P.setMarkerAngle(14.0);
            geoStyle_P.setMarkerSize(new Size2D(10, 10));
            geoStyle_P.setMarkerSymbolID(10);
            GeoPoint geoPoint = new GeoPoint();
            geoPoint.setX(100.0);
            geoPoint.setY(100.0);
            geoPoint.setStyle(geoStyle_P);
    
            // 实例化一个面几何对象,并对其进行渐变风格设置
            GeoStyle geoStyle_R = new GeoStyle();
            geoStyle_R.setFillBackColor(new Color(0,255,0));
            geoStyle_R.setFillForeColor(new Color(255,0,0));
            geoStyle_R.setFillBackOpaque(true);
            geoStyle_R.setFillOpaqueRate(50);
            geoStyle_R.setFillGradientAngle(30.0);                     //OpenGL不支持颜色渐变
            geoStyle_R.setFillGradientMode(FillGradientMode.LINEAR);   //OpenGL不支持颜色渐变
            GeoRegion geoRegion = new GeoRegion();
            Point2Ds point2Ds_R = new Point2Ds();
            Point2D[] point2DArray_R = {new Point2D(10, 50), new Point2D(150, 50),
                                       new Point2D(100, 150), new Point2D(10, 150)};
            point2Ds_R.addRange(point2DArray_R);
            geoRegion.addPart(point2Ds_R);
            geoRegion.setStyle(geoStyle_R);
    
            // 查看所设置的风格
            Map map = new Map(workspace);
            TrackingLayer layer = map.getTrackingLayer();
            layer.add(geoLine, "Line");
            layer.add(geoPoint, "Point");
            layer.add(geoRegion, "Region");
            map.setAntialias(true);
            map.setViewBounds(new Rectangle2D(0, 0, 250, 250));
        }
     
    • 构造器概要

      构造器 
      构造器和说明
      GeoStyle()
      构造一个新的 GeoStyle 对象。
      GeoStyle(GeoStyle style)
      根据给定的 GeoStyle 对象构造一个与其完全相同的新对象。
    • 方法概要

      所有方法 实例方法 具体方法 
      限定符和类型 方法和说明
      GeoStyle clone()
      返回当前 GeoStyle 对象的一个拷贝。
      void dispose()
      释放对象所占用的资源。
      boolean fromJson(java.lang.String json)
      从json数据返回geostyle。
      boolean fromXML(java.lang.String xml)
      根据 XML 字符串构建 GeoStyle 对象。
      Color getFillBackColor()
      返回填充符号的背景色。
      boolean getFillBackOpaque()
      判断当前填充背景是否不透明。
      Color getFillForeColor()
      返回填充符号的前景色。
      double getFillGradientAngle()
      渐变填充的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。
      FillGradientMode getFillGradientMode()
      返回渐变填充风格的渐变类型。
      double getFillGradientOffsetRatioX()
      返回渐变填充中心点相对于填充区域范围中心点的水平偏移百分比。
      double getFillGradientOffsetRatioY()
      返回填充中心点相对于填充区域范围中心点的垂直偏移百分比。
      int getFillOpaqueRate()
      返回填充不透明度,合法值0-100的数值。
      int getFillSymbolID()
      返回填充符号的编码。
      java.lang.String getFillSymbolStr()
      返回填充符号,仅支持MVT
      Color getLineColor()
      返回线状符号型风格或点状符号的颜色。
      int getLineSymbolID()
      返回线状符号的编码。
      double getLineWidth()
      返回线状符号的宽度。
      double getMarkerAngle()
      返回点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。
      Size2D getMarkerSize()
      返回点状符号的大小,单位为毫米,精确到0.1毫米。
      int getMarkerSymbolID()
      返回点状符号的编码。
      java.lang.String getMarkerSymbolStr()
      返回点的填充符号,仅支持MVT
      Color getPointColor()
      返回点的颜色
      void setFillBackColor(Color value)
      设置填充符号的背景色。
      void setFillBackOpaque(boolean value)
      设置当前填充背景是否不透明。
      void setFillForeColor(Color value)
      设置填充符号的前景色。
      void setFillGradientAngle(double value)
      渐变填充的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。
      void setFillGradientMode(FillGradientMode fillGradientMode)
      设置渐变填充风格的渐变类型,OpenGL不支持颜色渐变。
      void setFillGradientOffsetRatioX(double value)
      设置渐变填充中心点相对于填充区域范围中心点的水平偏移百分比,OpenGL不支持颜色渐变。
      void setFillGradientOffsetRatioY(double value)
      设置填充中心点相对于填充区域范围中心点的垂直偏移百分比,OpenGL不支持颜色渐变。
      void setFillOpaqueRate(int value)
      设置填充不透明度,合法值0-100的数值。
      void setFillSymbolID(int value)
      设置填充符号的编码。
      void setFillSymbolStr(java.lang.String value)
      设置填充符号的名称,当前仅支持MVT
      void setLineColor(Color value)
      设置线状符号型风格或点状符号的颜色。
      void setLineSymbolID(int value)
      设置线状符号的编码。
      void setLineWidth(double value)
      设置线状符号的宽度。
      void setMarkerAngle(double value)
      设置点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。
      void setMarkerSize(Size2D value)
      设置点状符号的大小,单位为毫米,精确到0.1毫米。
      void setMarkerSymbolID(int value)
      设置点对象的符号风格。
      void setMarkerSymbolStr(java.lang.String value)
      设置点的填充符号,仅支持MVT
      void setPointColor(Color value)
      设置点的颜色。
      java.lang.String toJson()
      将geostyle转成json。
      java.lang.String toString()
      返回一个表示此几何风格类对象的格式化字符串。
      java.lang.String toXML()
      将几何风格类的对象转换为 XML 格式的字符串。
      • 从类继承的方法 java.lang.Object

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

      • GeoStyle

        public GeoStyle()
        构造一个新的 GeoStyle 对象。
      • GeoStyle

        public GeoStyle(GeoStyle style)
        根据给定的 GeoStyle 对象构造一个与其完全相同的新对象。
        参数:
        style - 指定的 GeoStyle 对象。
        抛出:
        ArgumentNullException - 如果传入参数引用为空时或已释放。
    • 方法详细资料

      • getFillBackColor

        public Color getFillBackColor()
        返回填充符号的背景色。当填充模式为渐变填充时,该颜色为填充终止色。
        返回:
        Color 填充符号的背景色。
        Default:
        默认值为 Color[A=255, R=255, G=255, B=255]。
      • setFillBackColor

        public void setFillBackColor(Color value)
        设置填充符号的背景色。当填充模式为渐变填充时,该颜色为渐变填充终止色。
        参数:
        value - 用来设置填充符号的背景色。
      • getFillForeColor

        public Color getFillForeColor()
        返回填充符号的前景色。当填充模式为渐变填充时,该颜色为渐变填充起始色。
        返回:
        填充符号的前景色。
        Default:
        默认值为 Color[A=255, R=189, G=235, B=255]。
      • setFillForeColor

        public void setFillForeColor(Color value)
        设置填充符号的前景色。当填充模式为渐变填充时,该颜色为渐变填充起始颜色。
        参数:
        value - 用来设置填充符号的前景色。
      • getFillGradientAngle

        public double getFillGradientAngle()

        渐变填充的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。有关各渐变填充风格类型的定义,请参见 FillGradientMode。

        对于不同的渐变填充,其旋转的后的效果各异,但都是以最小外接矩形的中心为旋转中心,逆时针旋转的:

        线性渐变

        当设置的角度为0-360度的任意角度时,经过起始点和终止点的线以最小外接矩形的中心为旋转中心逆时针旋转,渐变风格随之旋转,依然从线的起始端渐变到终止端的线性渐变。如下列举在特殊角度的渐变风格:

        1. 当渐变填充角度设置为0度或者360度的时候,那么渐变填充风格为由左到右从起始色到终止色的线性渐变,如图所示起始色为黄色,终止色为粉红色;

        2. 当渐变填充角度设置为180度时,渐变填充风格与1中描述的风格正好相反,即从右到左,从起始色到终止色线性渐变;

        3. 当渐变填充角度设置为90度时,渐变填充风格为由下到上,起始色到终止色的线性渐变;

        4. 当渐变填充角度设置为270度时,渐变填充风格与3中描述的风格正好相反,即从上到下,起始色到终止色线性渐变。

        辐射渐变

        渐变填充角度设置为任何角度(不超出正常范围)时,将定义辐射渐变的圆形按照设置的角度进行旋转,由于圆是关于填充范围的最小外接矩形的中心点对称的,所以旋转之后的渐变填充的风格始终保持一样,即从中心点到填充范围的边界,从前景色到背景色的辐射渐变。

        圆锥渐变

        当渐变角度设置为0-360度之间的任何角度,该圆锥的所有母线将发生旋转,以圆锥的中心点,即填充区域的最小外接矩形的中心为旋转中心,逆时针方向旋转。如图所示的例子中,旋转角度为90度,所有的母线都从起始位置(旋转角度为零的位置)开始旋转到指定角度,以经过起始点的母线为例,其从0度位置旋转到90度位置。

        四角渐变

        根据给定的渐变填充角度,将发生渐变的正方形以填充区域范围的中心为中心进行相应的旋转,所有正方形都是从初始位置即旋转角度为零的默认位置开始旋转。渐变依然是从内部的正方形到外部的正方形发生从起始色到终止色的渐变.

        返回:
        渐变填充的旋转角度。
        Default:
        默认值为 0。
      • setFillGradientAngle

        public void setFillGradientAngle(double value)
        渐变填充的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。有关各渐变填充风格类型的定义,请参见 FillGradientMode

        对于不同的渐变填充,其旋转的后的效果各异,但都是以最小外接矩形的中心为旋转中心,逆时针旋转的。具体请参见 getFillGradientAngle() 方法。

        参数:
        value - 用来设置渐变填充的旋转角度。
      • getFillGradientOffsetRatioX

        public double getFillGradientOffsetRatioX()
        返回渐变填充中心点相对于填充区域范围中心点的水平偏移百分比。设填充区域范围中心点的坐标为(x0,y0),填充中心点的坐标为(x,y),填充区域范围的宽度为 a,水平偏移百分比为 dx,则

        x=x0 + a*dx/100 该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 x 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。

        返回:
        填充中心点相对于填充区域范围中心点的水平偏移百分比。
        Default:
        默认值为 0。
      • setFillGradientOffsetRatioX

        public void setFillGradientOffsetRatioX(double value)
        设置渐变填充中心点相对于填充区域范围中心点的水平偏移百分比,OpenGL不支持颜色渐变。设填充区域范围中心点的坐标为(x0,y0),填充中心点的坐标为(x,y),填充区域范围的宽度为 a,水平偏移百分比为 dx,则

        x=x0 + a*dx/100

        该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 x 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。
        参数:
        value - 用于设置填充中心点的水平偏移量的值。
      • getFillGradientOffsetRatioY

        public double getFillGradientOffsetRatioY()
        返回填充中心点相对于填充区域范围中心点的垂直偏移百分比。设填充区域范围中心点的坐标为(x0,y0),填充中心点的坐标为(x,y),填充区域范围的高度为 b,垂直偏移百分比为 dy,则

        y=y0 + b*dy/100

        该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 y 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。
        返回:
        填充中心点的垂直偏移量。
        Default:
        默认值为 0。
      • setFillGradientOffsetRatioY

        public void setFillGradientOffsetRatioY(double value)
        设置填充中心点相对于填充区域范围中心点的垂直偏移百分比,OpenGL不支持颜色渐变。设填充区域范围中心点的坐标为(x0,y0),填充中心点的坐标为(x,y),填充区域范围的高度为 b,垂直偏移百分比为 dy,则

        y=y0 + b*dy/100

        该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 y 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。(OpenGL不支持颜色渐变)
        参数:
        value - 用来设置填充中心点的垂直偏移量的值。
      • getFillGradientMode

        public FillGradientMode getFillGradientMode()
        返回渐变填充风格的渐变类型。关于各渐变填充类型的定义,请参见 FillGradientMode
        返回:
        渐变填充风格的渐变类型。
        另请参阅:
        FillGradientMode
        Default:
        默认值为 NONE 类型。
      • setFillGradientMode

        public void setFillGradientMode(FillGradientMode fillGradientMode)
        设置渐变填充风格的渐变类型,OpenGL不支持颜色渐变。关于各渐变填充类型的定义,请参见 FillGradientMode
        参数:
        fillGradientMode - 指定渐变填充风格的渐变类型。
        另请参阅:
        FillGradientMode
      • getFillOpaqueRate

        public int getFillOpaqueRate()
        返回填充不透明度,合法值0-100的数值。其值为0表示完全透明;若其值为100表示完全不透明。赋值小于0时按照0处理,大于100时按照100处理。
        返回:
        int 一个整数表示填充不透明度。
        Default:
        默认值为 100,表示完全不透明。
      • setFillOpaqueRate

        public void setFillOpaqueRate(int value)
        设置填充不透明度,合法值0-100的数值。其值为0表示空填充;若其值为100表示完全不透明。赋值小于0时按照0处理,大于100时按照100处理。
        参数:
        value - 用来设置填充不透明度的整数值。
      • getFillSymbolID

        public int getFillSymbolID()
        返回填充符号的编码。此编码用于唯一标识各普通填充风格的填充符号。

        填充符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。

        返回:
        一个整数表示填充符号的编码。
        Default:
        默认值为 0。
      • setFillSymbolID

        public void setFillSymbolID(int value)
        设置填充符号的编码。此编码用于唯一标识各普通填充风格的填充符号。

        填充符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。

        参数:
        value - 一个整数用来设置填充符号的编码。
      • getLineColor

        public Color getLineColor()
        返回线状符号型风格或点状符号的颜色。
        返回:
        线状符号型风格或点状符号的颜色。
        Default:
        默认值为 Color[A=255, R=0, G=0, B=0]。
      • setLineColor

        public void setLineColor(Color value)
        设置线状符号型风格或点状符号的颜色。
        参数:
        value - 一个 Color 对象用来设置线状符号型风格或点状符号的颜色。
        Example:
        请参见 Layer 类的示例。
      • getLineSymbolID

        public int getLineSymbolID()
        返回线状符号的编码。此编码用于唯一标识各线状符号。

        线状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。

        返回:
        线型符号的编码。
        Default:
        默认值为 0。
      • setLineSymbolID

        public void setLineSymbolID(int value)
        设置线状符号的编码。此编码用于唯一标识各线状符号。

        线状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。

        参数:
        value - 一个用来设置线型符号的编码的整数值。
        Example:
        请参见 Layer 的示例。
      • getLineWidth

        public double getLineWidth()
        返回线状符号的宽度。单位为毫米,精度到0.1。
        返回:
        线状符号的宽度。
        Default:
        默认值为 1.0。
      • setLineWidth

        public void setLineWidth(double value)
        设置线状符号的宽度。单位为毫米,精度到0.1。
        参数:
        value - 用来设置线状符号的宽度。
        Example:
        请参见 Layer 的示例。
      • getMarkerAngle

        public double getMarkerAngle()
        返回点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。此角度可以作为普通填充风格中填充符号的旋转角度。
        返回:
        点状符号的旋转角度。
        Default:
        默认值为 0.0。
      • setMarkerAngle

        public void setMarkerAngle(double value)
        设置点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。此角度可以作为普通填充风格中填充符号的旋转角度。
        参数:
        value - 用来设置点状符号的旋转角度。
      • getMarkerSize

        public Size2D getMarkerSize()
        返回点状符号的大小,单位为毫米,精确到0.1毫米。其值必须大于等于0。如果为0,则表示不显示,如果是小于0,会抛出异常。
        返回:
        点状符号的大小。
        Default:
        默认值为 {Width = 24,Height = 24}。
      • setMarkerSize

        public void setMarkerSize(Size2D value)
        设置点状符号的大小,单位为毫米,精确到0.1毫米。其值必须大于等于0。如果为0,则表示不显示,如果是小于0,会抛出异常。
        参数:
        value - 用来设置点状符号的大小的值。
      • getMarkerSymbolID

        public int getMarkerSymbolID()
        返回点状符号的编码。此编码用于唯一标识各点状符号。

        点状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。

        返回:
        点状符号的编码。
        Default:
        默认值为 0。
      • setMarkerSymbolID

        public void setMarkerSymbolID(int value)
        设置点对象的符号风格。如果颜色和符号同时存在,优先选择符号进行渲染
        参数:
        value -
      • getFillBackOpaque

        public boolean getFillBackOpaque()
        判断当前填充背景是否不透明。
        返回:
        如果当前填充背景是不透明的,返回 true,否则返回 false。
        Default:
        默认值为 false,代表透明。
      • setFillBackOpaque

        public void setFillBackOpaque(boolean value)
        设置当前填充背景是否不透明。
        参数:
        value - 指定当前填充背景是否透明,true 为不透明。
      • clone

        public GeoStyle clone()
        返回当前 GeoStyle 对象的一个拷贝。
        覆盖:
        clone 在类中 java.lang.Object
        返回:
        通过克隆操作得到的 GeoStyle 对象。
      • dispose

        public void dispose()
        释放对象所占用的资源。调用该方法之后,此对象不再可用。
      • toString

        public java.lang.String toString()
        返回一个表示此几何风格类对象的格式化字符串。
        覆盖:
        toString 在类中 java.lang.Object
        返回:
        表示此几何风格类对象的字符串。
      • fromXML

        public boolean fromXML(java.lang.String xml)
        根据 XML 字符串构建 GeoStyle 对象。
        参数:
        xml - 指定的 XML 字符串。
        返回:
        如果构建成功返回 true,否则返回 false。
      • toXML

        public java.lang.String toXML()
        将几何风格类的对象转换为 XML 格式的字符串。
        返回:
        表示几何风格类的对象转换为 XML 格式的字符串。
      • getPointColor

        public Color getPointColor()
        返回点的颜色
        返回:
        Color
      • setPointColor

        public void setPointColor(Color value)
        设置点的颜色。
        参数:
        value - Color
      • fromJson

        public boolean fromJson(java.lang.String json)
        从json数据返回geostyle。
        参数:
        json - json数据
        返回:
        从json数据返回geostyle
      • toJson

        public java.lang.String toJson()
        将geostyle转成json。
        返回:
        得到geostyle转成json的数据
      • getFillSymbolStr

        public java.lang.String getFillSymbolStr()
        返回填充符号,仅支持MVT
        返回:
      • setFillSymbolStr

        public void setFillSymbolStr(java.lang.String value)
        设置填充符号的名称,当前仅支持MVT
        参数:
        value -
      • setMarkerSymbolStr

        public void setMarkerSymbolStr(java.lang.String value)
        设置点的填充符号,仅支持MVT
        参数:
        value -
      • getMarkerSymbolStr

        public java.lang.String getMarkerSymbolStr()
        返回点的填充符号,仅支持MVT
        返回: