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()
构造一个新的 GeoStyle 对象。
|
GeoStyle(GeoStyle style)
根据给定的 GeoStyle 对象构造一个与其完全相同的新对象。
|
限定符和类型 | 方法和说明 |
---|---|
GeoStyle |
clone()
返回当前 GeoStyle 对象的一个拷贝。
|
void |
dispose()
释放对象所占用的资源。
|
boolean |
fromXML(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()
返回填充符号的编码。
|
Color |
getLineColor()
返回线状符号型风格或点状符号的颜色。
|
int |
getLineSymbolID()
返回线状符号的编码。
|
double |
getLineWidth()
返回线状符号的宽度。
|
double |
getMarkerAngle()
返回点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。
|
Size2D |
getMarkerSize()
返回点状符号的大小,单位为毫米,精确到0.1毫米。
|
int |
getMarkerSymbolID()
返回点状符号的编码。
|
String |
getPicturePath() |
String |
getSVGPath()
返回SVG矢量图形符号对应的svg文件的全路径。
|
SymbolFill |
getSymbolFill()
返回该几何风格对象所修饰的对象所使用的填充符号,默认值为 null。
|
SymbolLine |
getSymbolLine()
返回该几何风格对象所修饰的对象所使用的线状符号,默认值为 null。
|
SymbolMarker |
getSymbolMarker()
返回该几何风格对象所修饰的对象所使用的点符号,默认值为 null。
|
boolean |
isFixedColorOfSVG()
返回SVG矢量图形符号是否固定颜色。
|
void |
setFillBackColor(Color value)
设置填充符号的背景色。
|
void |
setFillBackOpaque(boolean value)
设置当前填充背景是否不透明。
|
void |
setFillForeColor(Color value)
设置填充符号的前景色。
|
void |
setFillGradientAngle(double value)
渐变填充的旋转角度,单位为0.1度,逆时针方向为正方向。
|
void |
setFillGradientMode(FillGradientMode fillGradientMode)
设置渐变填充风格的渐变类型。
|
void |
setFillGradientOffsetRatioX(double value)
设置渐变填充中心点相对于填充区域范围中心点的水平偏移百分比。
|
void |
setFillGradientOffsetRatioY(double value)
设置填充中心点相对于填充区域范围中心点的垂直偏移百分比。
|
void |
setFillOpaqueRate(int value)
设置填充不透明度,合法值0-100的数值。
|
void |
setFillSymbolID(int value)
设置填充符号的编码。
|
void |
setFixedColorOfSVG(boolean value)
设置SVG矢量图形符号是否固定颜色,即使用SVG符号对应svg文件中指定的颜色。
|
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 |
setPicturePath(String picturePath) |
void |
setSVGPath(String svgPath)
设置SVG矢量图形符号对应的svg文件的全路径。
|
void |
setSymbolFill(SymbolFill symbolFill)
设置该几何风格对象所修饰的对象所使用的填充符号,默认值为 null。
|
void |
setSymbolLine(SymbolLine symbolLine)
设置该几何风格对象所修饰的对象所使用的线状符号,默认值为 null。
|
void |
setSymbolMarker(SymbolMarker symbolMarker)
设置该几何风格对象所修饰的对象所使用的点符号,默认值为 null。
|
String |
toString()
返回一个表示此几何风格类对象的格式化字符串。
|
String |
toXML()
返回表示
GeoStyle 对象的 XML 字符串。 |
public GeoStyle()
public GeoStyle(GeoStyle style)
style
- 指定的 GeoStyle 对象。IllegalArgumentException
- 如果传入参数引用为空时或已释放。public Color getFillBackColor()
public void setFillBackColor(Color value)
value
- 用来设置填充符号的背景色。public boolean getFillBackOpaque()
public void setFillBackOpaque(boolean value)
value
- 指定当前填充背景是否透明,true 为不透明。public Color getFillForeColor()
public void setFillForeColor(Color value)
value
- 用来设置填充符号的前景色。public double getFillGradientAngle()
渐变填充的旋转角度,单位为0.1度,逆时针方向为正方向。有关各渐变填充风格类型的定义,请参见 FillGradientMode。
对于不同的渐变填充,其旋转的后的效果各异,但都是以最小外接矩形的中心为旋转中心,逆时针旋转的:
线性渐变
当设置的角度为0-360度的任意角度时,经过起始点和终止点的线以最小外接矩形的中心为旋转中心逆时针旋转,渐变风格随之旋转,依然从线的起始端渐变到终止端的线性渐变。如下列举在特殊角度的渐变风格:
辐射渐变
渐变填充角度设置为任何角度(不超出正常范围)时,将定义辐射渐变的圆形按照设置的角度进行旋转,由于圆是关于填充范围的最小外接矩形的中心点对称的,所以旋转之后的渐变填充的风格始终保持一样,即从中心点到填充范围的边界,从前景色到背景色的辐射渐变。
圆锥渐变
当渐变角度设置为0-360度之间的任何角度,该圆锥的所有母线将发生旋转,以圆锥的中心点,即填充区域的最小外接矩形的中心为旋转中心,逆时针方向旋转。如图所示的例子中,旋转角度为90度,所有的母线都从起始位置(旋转角度为零的位置)开始旋转到指定角度,以经过起始点的母线为例,其从0度位置旋转到90度位置。
四角渐变
根据给定的渐变填充角度,将发生渐变的正方形以填充区域范围的中心为中心进行相应的旋转,所有正方形都是从初始位置即旋转角度为零的默认位置开始旋转。渐变依然是从内部的正方形到外部的正方形发生从起始色到终止色的渐变.
public void setFillGradientAngle(double value)
FillGradientMode
。
对于不同的渐变填充,其旋转的后的效果各异,但都是以最小外接矩形的中心为旋转中心,逆时针旋转的。具体请参见 getFillGradientAngle()
方法。
value
- 用来设置渐变填充的旋转角度。public double getFillGradientOffsetRatioX()
x=x0 + a*dx/100 该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 x 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。
public void setFillGradientOffsetRatioX(double value)
x=x0 + a*dx/100
该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 x 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。value
- 用于设置填充中心点的水平偏移量的值。public double getFillGradientOffsetRatioY()
y=y0 + b*dy/100
该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 y 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。public void setFillGradientOffsetRatioY(double value)
y=y0 + b*dy/100
该百分比可以为负,当其为负时,填充中心点相对于填充区域范围中心点向 y 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。value
- 用来设置填充中心点的垂直偏移量的值。public FillGradientMode getFillGradientMode()
FillGradientMode
。FillGradientMode
NONE
类型。public void setFillGradientMode(FillGradientMode fillGradientMode)
FillGradientMode
。fillGradientMode
- 指定渐变填充风格的渐变类型。FillGradientMode
public int getFillOpaqueRate()
public void setFillOpaqueRate(int value)
value
- 用来设置填充不透明度的整数值。public int getFillSymbolID()
填充符号可以用户自定义,也可以使用系统自带的符号库。
public void setFillSymbolID(int value)
填充符号可以用户自定义,也可以使用系统自带的符号库。
所指定的填充符号的 ID 值必须是符号库中已存在的 ID 值。
只有通过 GeoStyle.setSymbolFill() 方法设置了所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值才不为 null。如果是通过 GeoStyle.setFillSymbolID 设置了所使用填充符号,而没有通过 GeoStyle.setSymbolFill() 方法设置所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值仍然为 null。
value
- 一个整数用来设置填充符号的编码。public Color getLineColor()
public void setLineColor(Color value)
value
- 一个 Color 对象用来设置线状符号型风格或点状符号的颜色。Layer
类的示例。public int getLineSymbolID()
线状符号可以用户自定义,也可以使用系统自带的符号库。
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
的示例。public double getLineWidth()
public void setLineWidth(double value)
value
- 用来设置线状符号的宽度。Layer
的示例。public double getMarkerAngle()
public void setMarkerAngle(double value)
value
- 用来设置点状符号的旋转角度。ThemeDotDensity
类的示例。public Size2D getMarkerSize()
public void setMarkerSize(Size2D value)
当对点矢量图层设置风格时,如果使用的点符号为 TrueType 字体,在指定点符号的宽高尺寸时,不支持设置宽高值不相等的符号大小,即符号的宽高比例始终为 1:1。当用户设置了宽高值不相等的符号大小时,系统自动将符号大小的宽高值取为相等的值,并且等于用户所指定的高度值。
value
- 用来设置点状符号的大小的值。ThemeDotDensity
类的示例。public int getMarkerSymbolID()
点状符号可以用户自定义,也可以使用系统自带的符号库。
public void setMarkerSymbolID(int value)
点状符号可以用户自定义,也可以使用系统自带的符号库。
所指定的线型符号的 ID 值必须是符号库中已存在的 ID 值。
只有通过 GeoStyle.setSymbolMarker() 方法设置了所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值才不为 null。如果是通过 GeoStyle.setMarkerSymbolID 设置了所使用点符号,而没有通过 GeoStyle.setSymbolMarker() 方法设置所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值仍然为 null。
value
- 点状符号的编码。ThemeDotDensity
类的示例。public GeoStyle clone()
public void dispose()
public String toString()
public SymbolMarker getSymbolMarker()
只有通过 GeoStyle.setSymbolMarker() 方法设置了所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值才不为 null。如果是通过 GeoStyle.setMarkerSymbolID 设置了所使用点符号,而没有通过 GeoStyle.setSymbolMarker() 方法设置所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值仍然为 null。
public void setSymbolMarker(SymbolMarker symbolMarker)
只有通过 GeoStyle.setSymbolMarker() 方法设置了所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值才不为 null。如果是通过 GeoStyle.setMarkerSymbolID 设置了所使用点符号,而没有通过 GeoStyle.setSymbolMarker() 方法设置所使用的点符号,GeoStyle.getSymbolMarker() 方法返回值仍然为 null。
symbolMarker
- 该几何风格对象所修饰的对象所使用的点符号。public SymbolLine getSymbolLine()
目前SymbolLine类仅在Windows平台下提供,故此方法仅在Windows平台下有效。
只有通过 GeoStyle.setSymbolLine() 方法设置了所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值才不为 null。如果是通过 GeoStyle.setLineSymbolID 设置了所使用线型符号,而没有通过 GeoStyle.setSymbolLine() 方法设置所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值仍然为 null。
public void setSymbolLine(SymbolLine symbolLine)
目前SymbolLine类仅在Windows平台下提供,故此方法仅在Windows平台下有效。
只有通过 GeoStyle.setSymbolLine() 方法设置了所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值才不为 null。如果是通过 GeoStyle.setLineSymbolID 设置了所使用线型符号,而没有通过 GeoStyle.setSymbolLine() 方法设置所使用的线型符号,GeoStyle.getSymbolLine() 方法返回值仍然为 null。
symbolLine
- 该几何风格对象所修饰的对象所使用的线状符号。public SymbolFill getSymbolFill()
只有通过 GeoStyle.setSymbolFill() 方法设置了所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值才不为 null。如果是通过 GeoStyle.setFillSymbolID 设置了所使用填充符号,而没有通过 GeoStyle.setSymbolFill() 方法设置所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值仍然为 null。
public boolean fromXML(String xml)
GeoStyle
对象。xml
- 指定的 XML 字符串。public void setSymbolFill(SymbolFill symbolFill)
只有通过 GeoStyle.setSymbolFill() 方法设置了所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值才不为 null。如果是通过 GeoStyle.setFillSymbolID 设置了所使用填充符号,而没有通过 GeoStyle.setSymbolFill() 方法设置所使用的填充符号,GeoStyle.getSymbolFill() 方法返回值仍然为 null。
symbolFill
- 该几何风格对象所修饰的对象所使用的填充符号。public String getPicturePath()
public void setPicturePath(String picturePath)
public String getSVGPath()
public void setSVGPath(String svgPath)
svgPath
- SVG矢量图形符号对应的svg文件的全路径。public boolean isFixedColorOfSVG()
public void setFixedColorOfSVG(boolean value)
value
- 一个布尔值,指示SVG矢量图形符号是否固定颜色,true,表示固定颜色,即使用SVG符号对应svg文件中指定的颜色;false,表示不固定颜色。Copyright © 2021–2024 SuperMap. All rights reserved.