public class GeoStyle
extends java.lang.Object
几何风格类。
用于定义点状符号、线状符号、填充符号及其相关设置。对于文本对象只能设置文本风格,不能设置几何风格。
该类的实例中只存储风格的 ID 值,具体的风格存储在相应的点状符号、线状符号、填充符号库中,有关点状符号、线状符号型、填充符号库详细介绍请参见开发指南 SuperMap iMobile 资源库一览。除复合数据集(CAD 数据集)之外,其他类型数据集都不存储几何对象的风格信息。
填充模式分为普通填充模式和渐变填充模式。在普通填充模式下,可以使用图片或矢量符号等进行填充;在渐变填充模式下,有四种渐变类型可供选择:线性渐变填充,辐射渐变填充,圆锥渐变填充和四角渐变填充。
该对象实例被 dispose()
后,再次调用该类的方法会抛出 ObjectDisposedException。
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()
返回填充符号的编码。
|
Color |
getLineColor()
返回线状符号型风格或点状符号的颜色。
|
int |
getLineSymbolID()
返回线状符号的编码。
|
double |
getLineWidth()
返回线状符号的宽度。
|
double |
getMarkerAngle()
返回点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。
|
Size2D |
getMarkerSize()
返回点状符号的大小,单位为毫米,精确到0.1毫米。
|
int |
getMarkerSymbolID()
返回点状符号的编码。
|
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 |
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 |
setPointColor(Color value)
设置点的颜色
|
java.lang.String |
toJson()
将geostyle转成json
|
java.lang.String |
toString()
返回一个表示此几何风格类对象的格式化字符串。
|
java.lang.String |
toXML()
将几何风格类的对象转换为 XML 格式的字符串。
|
public GeoStyle()
public GeoStyle(GeoStyle style)
style
- 指定的 GeoStyle 对象。ArgumentNullException
- 如果传入参数引用为空时或已释放。public Color getFillBackColor()
public void setFillBackColor(Color value)
value
- 用来设置填充符号的背景色。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 轴负方向偏移。该方法对辐射渐变、圆锥渐变、四角渐变和线性渐变填充有效。(OpenGL不支持颜色渐变)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()
填充符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。
public void setFillSymbolID(int value)
填充符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。
value
- 一个整数用来设置填充符号的编码。public Color getLineColor()
public void setLineColor(Color value)
value
- 一个 Color 对象用来设置线状符号型风格或点状符号的颜色。Layer
类的示例。public int getLineSymbolID()
线状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。
public void setLineSymbolID(int value)
线状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。
value
- 一个用来设置线型符号的编码的整数值。Layer
的示例。public double getLineWidth()
public void setLineWidth(double value)
value
- 用来设置线状符号的宽度。Layer
的示例。public double getMarkerAngle()
public void setMarkerAngle(double value)
value
- 用来设置点状符号的旋转角度。public Size2D getMarkerSize()
public void setMarkerSize(Size2D value)
value
- 用来设置点状符号的大小的值。public int getMarkerSymbolID()
点状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。
public void setMarkerSymbolID(int value)
点状符号可以用户自定义,也可以使用系统自带的符号库。使用系统自带符号库时,其相应的的编码参见开发指南 SuperMap Objects 资源库一览。
value
- 点状符号的编码。public boolean getFillBackOpaque()
public void setFillBackOpaque(boolean value)
value
- 指定当前填充背景是否透明,true 为不透明。public GeoStyle clone()
clone
在类中 java.lang.Object
public void dispose()
public java.lang.String toString()
toString
在类中 java.lang.Object
public boolean fromXML(java.lang.String xml)
xml
- 指定的 XML 字符串。public java.lang.String toXML()
public Color getPointColor()
public void setPointColor(Color value)
value
- Colorpublic boolean fromJson(java.lang.String json)
json
- json数据public java.lang.String toJson()