com.supermap.data

类 GeoStyle

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.GeoStyle
  • 所有已实现的接口:
    IDisposable


    public class GeoStyle
    extends com.supermap.data.InternalHandleDisposable

    几何风格类。

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

    除复合数据集(CAD 数据集)之外,其他类型数据集都不存储几何对象的风格信息。

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

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

    示范代码:
    以下代码示范如何对点、线、面几何对象设置风格,出图查看所设置的风格。
     public void geoStyleTest(){
            // 假设打开一个工作空间 workspace 对象。
            // 实例化一个线几何对象,并对其进行风格设置
            GeoStyle geoStyle_L = new GeoStyle();
            geoStyle_L.setLineColor(java.awt.Color.black);
            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(java.awt.Color.green);
            geoStyle_R.setFillForeColor(java.awt.Color.red);
            geoStyle_R.setFillBackOpaque(true);
            geoStyle_R.setFillOpaqueRate(50);
            geoStyle_R.setFillGradientAngle(30.0);
            geoStyle_R.setFillGradientMode(FillGradientMode.LINEAR);
            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));
            map.outputMapToJPG("G:/world/style");
        }
     
    • 构造器详细资料

      • GeoStyle

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

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

      • getFillBackColor

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

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

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

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

        public Color getFillForeColor()
        返回填充符号的前景色。当填充模式为渐变填充时,该颜色为渐变填充起始色。
        返回:
        填充符号的前景色。
        默认值:
        默认值为 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度位置。

        四角渐变

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

        返回:
        渐变填充的旋转角度。
        默认值:
        默认值为 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 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。

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

        public void setFillGradientOffsetRatioX(double value)
        设置渐变填充中心点相对于填充区域范围中心点的水平偏移百分比。设填充区域范围中心点的坐标为(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 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。
        返回:
        填充中心点的垂直偏移量。
        默认值:
        默认值为 0。
      • setFillGradientOffsetRatioY

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

        y=y0 + b*dy/100

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

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

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

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

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

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

        填充符号可以用户自定义,也可以使用系统自带的符号库。

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

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

        填充符号可以用户自定义,也可以使用系统自带的符号库。

        所指定的填充符号的 ID 值必须是符号库中已存在的 ID 值。

        只有通过 GeoStyle.setSymbolFill() 方法设置了所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值才不为 null。如果是通过 GeoStyle.setFillSymbolID 设置了所使用填充符号,而没有通过 GeoStyle.setSymbolFill() 方法设置所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值仍然为 null。

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

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

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

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

        线状符号可以用户自定义,也可以使用系统自带的符号库。

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

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

        线状符号可以用户自定义,也可以使用系统自带的符号库。

        所指定的线型符号的 ID 值必须是符号库中已存在的 ID 值。

        当面几何对象风格的轮廓线使用 ID为5的系统线型符号(即:NULL系统线型,GeoStyle.setLineSymbolID(int)设置为 5)时,轮廓线反走样无效。

        只有通过 GeoStyle.setSymbolLine() 方法设置了所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值才不为 null。如果是通过 GeoStyle.setLineSymbolID 设置了所使用线型符号,而没有通过 GeoStyle.setSymbolLine() 方法设置所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值仍然为 null。

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

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

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

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

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

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

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

        当对点矢量图层设置风格时,如果使用的点符号为 TrueType 字体,在指定点符号的宽高尺寸时,不支持设置宽高值不相等的符号大小,即符号的宽高比例始终为 1:1。当用户设置了宽高值不相等的符号大小时,系统自动将符号大小的宽高值取为相等的值,并且等于用户所指定的高度值。

        参数:
        value - 用来设置点状符号的大小的值。
        示范代码:
        请参见 ThemeDotDensity 类的示例。
      • getMarkerSymbolID

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

        点状符号可以用户自定义,也可以使用系统自带的符号库。

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

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

        点状符号可以用户自定义,也可以使用系统自带的符号库。

        所指定的线型符号的 ID 值必须是符号库中已存在的 ID 值。

        只有通过 GeoStyle.setSymbolMarker() 方法设置了所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值才不为 null。如果是通过 GeoStyle.setMarkerSymbolID 设置了所使用点符号,而没有通过 GeoStyle.setSymbolMarker() 方法设置所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值仍然为 null。

        参数:
        value - 点状符号的编码。
        示范代码:
        请参见 ThemeDotDensity 类的示例。
      • clone

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

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

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

        public SymbolMarker getSymbolMarker()
        返回该几何风格对象所修饰的对象所使用的点符号,默认值为 null。

        只有通过 GeoStyle.setSymbolMarker() 方法设置了所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值才不为 null。如果是通过 GeoStyle.setMarkerSymbolID 设置了所使用点符号,而没有通过 GeoStyle.setSymbolMarker() 方法设置所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值仍然为 null。

        返回:
        该几何风格对象所修饰的对象所使用的点符号。
        默认值:
        默认值为 null。
      • setSymbolMarker

        public void setSymbolMarker(SymbolMarker symbolMarker)
        设置该几何风格对象所修饰的对象所使用的点符号,默认值为 null。

        只有通过 GeoStyle.setSymbolMarker() 方法设置了所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值才不为 null。如果是通过 GeoStyle.setMarkerSymbolID 设置了所使用点符号,而没有通过 GeoStyle.setSymbolMarker() 方法设置所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值仍然为 null。

        参数:
        symbolMarker - 该几何风格对象所修饰的对象所使用的点符号。
        默认值:
        默认值为 null。
      • getSymbolLine

        public SymbolLine getSymbolLine()
        返回该几何风格对象所修饰的对象所使用的线状符号,默认值为 null。

        目前SymbolLine类仅在Windows平台下提供,故此方法仅在Windows平台下有效。

        只有通过 GeoStyle.setSymbolLine() 方法设置了所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值才不为 null。如果是通过 GeoStyle.setLineSymbolID 设置了所使用线型符号,而没有通过 GeoStyle.setSymbolLine() 方法设置所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值仍然为 null。

        返回:
        该几何风格对象所修饰的对象所使用的线状符号。
        默认值:
        默认值为 null。
      • setSymbolLine

        public void setSymbolLine(SymbolLine symbolLine)
        设置该几何风格对象所修饰的对象所使用的线状符号,默认值为 null。

        目前SymbolLine类仅在Windows平台下提供,故此方法仅在Windows平台下有效。

        只有通过 GeoStyle.setSymbolLine() 方法设置了所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值才不为 null。如果是通过 GeoStyle.setLineSymbolID 设置了所使用线型符号,而没有通过 GeoStyle.setSymbolLine() 方法设置所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值仍然为 null。

        参数:
        symbolLine - 该几何风格对象所修饰的对象所使用的线状符号。
        默认值:
        默认值为 null。
      • getSymbolFill

        public SymbolFill getSymbolFill()
        返回该几何风格对象所修饰的对象所使用的填充符号,默认值为 null。

        只有通过 GeoStyle.setSymbolFill() 方法设置了所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值才不为 null。如果是通过 GeoStyle.setFillSymbolID 设置了所使用填充符号,而没有通过 GeoStyle.setSymbolFill() 方法设置所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值仍然为 null。

        返回:
        该几何风格对象所修饰的对象所使用的填充符号。
        默认值:
        默认值为 null。
      • toXML

        public String toXML()
        返回表示 GeoStyle 对象的 XML 字符串。
        返回:
        表示 GeoStyle 对象的XML字符串。
      • fromXML

        public boolean fromXML(String xml)
        根据传入的 XML 字符串重新构造该 GeoStyle 对象。
        参数:
        xml - 指定的 XML 字符串。
        返回:
        如果构建成功返回 true,否则返回 false。
      • setSymbolFill

        public void setSymbolFill(SymbolFill symbolFill)
        设置该几何风格对象所修饰的对象所使用的填充符号,默认值为 null。

        只有通过 GeoStyle.setSymbolFill() 方法设置了所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值才不为 null。如果是通过 GeoStyle.setFillSymbolID 设置了所使用填充符号,而没有通过 GeoStyle.setSymbolFill() 方法设置所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值仍然为 null。

        参数:
        symbolFill - 该几何风格对象所修饰的对象所使用的填充符号。
        默认值:
        默认值为 null。
      • getPicturePath

        public String getPicturePath()
      • setPicturePath

        public void setPicturePath(String picturePath)
      • getSVGPath

        public String getSVGPath()
        返回SVG矢量图形符号对应的svg文件的全路径。
        返回:
        返回SVG矢量图形符号对应的svg文件的全路径。
      • setSVGPath

        public void setSVGPath(String svgPath)
        设置SVG矢量图形符号对应的svg文件的全路径。
        参数:
        svgPath - SVG矢量图形符号对应的svg文件的全路径。
      • isFixedColorOfSVG

        public boolean isFixedColorOfSVG()
        返回是否支持修改SVG矢量图形符号的颜色,即对应svg文件中指定的颜色。
        返回:
        一个布尔值,指示是否支持修改SVG矢量图形符号的颜色,即对应svg文件中指定的颜色。true,表示支持修改;false,表示不支持修改,即使用对应svg文件中指定的颜色。
      • setFixedColorOfSVG

        public void setFixedColorOfSVG(boolean value)
        设置是否支持修改SVG矢量图形符号的颜色,即对应svg文件中指定的颜色。
        参数:
        value - 一个布尔值,指示是否支持修改SVG矢量图形符号的颜色,即对应svg文件中指定的颜色。true,表示支持修改;false,表示不支持修改,即使用对应svg文件中指定的颜色。

Copyright © 2021–2024 SuperMap. All rights reserved.