类 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 对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 实例方法 具体方法 限定符和类型 方法和说明 GeoStyleclone()返回当前 GeoStyle 对象的一个拷贝。voiddispose()释放对象所占用的资源。booleanfromJson(java.lang.String json)从json数据返回geostyle。booleanfromXML(java.lang.String xml)根据 XML 字符串构建 GeoStyle 对象。ColorgetFillBackColor()返回填充符号的背景色。booleangetFillBackOpaque()判断当前填充背景是否不透明。ColorgetFillForeColor()返回填充符号的前景色。doublegetFillGradientAngle()渐变填充的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。FillGradientModegetFillGradientMode()返回渐变填充风格的渐变类型。doublegetFillGradientOffsetRatioX()返回渐变填充中心点相对于填充区域范围中心点的水平偏移百分比。doublegetFillGradientOffsetRatioY()返回填充中心点相对于填充区域范围中心点的垂直偏移百分比。intgetFillOpaqueRate()返回填充不透明度,合法值0-100的数值。intgetFillSymbolID()返回填充符号的编码。java.lang.StringgetFillSymbolStr()返回填充符号,仅支持MVTColorgetLineColor()返回线状符号型风格或点状符号的颜色。intgetLineSymbolID()返回线状符号的编码。doublegetLineWidth()返回线状符号的宽度。doublegetMarkerAngle()返回点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。Size2DgetMarkerSize()返回点状符号的大小,单位为毫米,精确到0.1毫米。intgetMarkerSymbolID()返回点状符号的编码。java.lang.StringgetMarkerSymbolStr()返回点的填充符号,仅支持MVTColorgetPointColor()返回点的颜色voidsetFillBackColor(Color value)设置填充符号的背景色。voidsetFillBackOpaque(boolean value)设置当前填充背景是否不透明。voidsetFillForeColor(Color value)设置填充符号的前景色。voidsetFillGradientAngle(double value)渐变填充的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。voidsetFillGradientMode(FillGradientMode fillGradientMode)设置渐变填充风格的渐变类型,OpenGL不支持颜色渐变。voidsetFillGradientOffsetRatioX(double value)设置渐变填充中心点相对于填充区域范围中心点的水平偏移百分比,OpenGL不支持颜色渐变。voidsetFillGradientOffsetRatioY(double value)设置填充中心点相对于填充区域范围中心点的垂直偏移百分比,OpenGL不支持颜色渐变。voidsetFillOpaqueRate(int value)设置填充不透明度,合法值0-100的数值。voidsetFillSymbolID(int value)设置填充符号的编码。voidsetFillSymbolStr(java.lang.String value)设置填充符号的名称,当前仅支持MVTvoidsetLineColor(Color value)设置线状符号型风格或点状符号的颜色。voidsetLineSymbolID(int value)设置线状符号的编码。voidsetLineWidth(double value)设置线状符号的宽度。voidsetMarkerAngle(double value)设置点状符号的旋转角度,以度为单位,精确到0.1度,逆时针方向为正方向。voidsetMarkerSize(Size2D value)设置点状符号的大小,单位为毫米,精确到0.1毫米。voidsetMarkerSymbolID(int value)设置点对象的符号风格。voidsetMarkerSymbolStr(java.lang.String value)设置点的填充符号,仅支持MVTvoidsetPointColor(Color value)设置点的颜色。java.lang.StringtoJson()将geostyle转成json。java.lang.StringtoString()返回一个表示此几何风格类对象的格式化字符串。java.lang.StringtoXML()将几何风格类的对象转换为 XML 格式的字符串。
-
-
-
构造器详细资料
-
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度的任意角度时,经过起始点和终止点的线以最小外接矩形的中心为旋转中心逆时针旋转,渐变风格随之旋转,依然从线的起始端渐变到终止端的线性渐变。如下列举在特殊角度的渐变风格:
- 当渐变填充角度设置为0度或者360度的时候,那么渐变填充风格为由左到右从起始色到终止色的线性渐变,如图所示起始色为黄色,终止色为粉红色;

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

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

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

辐射渐变
渐变填充角度设置为任何角度(不超出正常范围)时,将定义辐射渐变的圆形按照设置的角度进行旋转,由于圆是关于填充范围的最小外接矩形的中心点对称的,所以旋转之后的渐变填充的风格始终保持一样,即从中心点到填充范围的边界,从前景色到背景色的辐射渐变。
圆锥渐变
当渐变角度设置为0-360度之间的任何角度,该圆锥的所有母线将发生旋转,以圆锥的中心点,即填充区域的最小外接矩形的中心为旋转中心,逆时针方向旋转。如图所示的例子中,旋转角度为90度,所有的母线都从起始位置(旋转角度为零的位置)开始旋转到指定角度,以经过起始点的母线为例,其从0度位置旋转到90度位置。


四角渐变
根据给定的渐变填充角度,将发生渐变的正方形以填充区域范围的中心为中心进行相应的旋转,所有正方形都是从初始位置即旋转角度为零的默认位置开始旋转。渐变依然是从内部的正方形到外部的正方形发生从起始色到终止色的渐变.
- 返回:
- 渐变填充的旋转角度。
- Default:
- 默认值为 0。
- 当渐变填充角度设置为0度或者360度的时候,那么渐变填充风格为由左到右从起始色到终止色的线性渐变,如图所示起始色为黄色,终止色为粉红色;
-
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- 返回:
-
-