符号化Symbol(符号)体系

2023-12-23 20:08
文章标签 体系 符号 symbol 符号化

本文主要是介绍符号化Symbol(符号)体系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

符号化Symbol(符号)体系

ArcGIS Engine9.3为开发人员提供了32种符号,主要分为三大类符号MarkerSymbol(点符号)、 LineSymbol(线符号)和FillSymbol(填充符号)来绘制地理要素的几何图形。此外还有两种特殊类型的符号:一种是TextSymbol用于文字标注;另一种是3D Chart符号,用于显示饼图等三维对象,如需详细了解请查找帮助文档。

1. MarkerSymbol对象

MarkerSymbol用于修饰点对象的符号,它拥有十三个子类如表2所示,其中不同的子类可以产生不同类型的点符号。所有的MarkerSymbol类都实现了IMarkerSymbol接口,这个接口定义了标记符号的公共方法和属性,如角度、颜色、大小和X,Y偏移量等

表二

 

点符号类型

描述

ArrowMarkerSymbol

预定义的肩头符号

BarChartSymbol

柱状图符号

CharacterMarker3DSymbol

三维字体符号

CharacterMarkerSymbol

字体符号

Marker3DSymbol

3D 符号

MultiLayerMarkerSymbol

多个符号叠加产生新点符号

PictureMarkerSymbol

图片符号(bmp或emf)

PiechartSymbol

饼图符号

SimpleMarker3DSymbol

简单3D符号

SimpleMarkerSymbol

简单符号

StackedChartSymbol

堆叠符号

TextMarkerSymbol

文字符号用来符号化点  

常用的有以下5种 类型:

如何创建MarkerSymbol?接下来以SimpleMarkerSymbol构建为例演示如何创建一个点符号:


//创建SimpleMarkerSymbolClass对象

ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();

//创建RgbColorClass对象为pSimpleMarkerSymbol设置颜色

IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 255;
pSimpleMarkerSymbol.Color = pRgbColor as IColor;

//设置pSimpleMarkerSymbol对象的符号类型,选择钻石
pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;

//设置pSimpleMarkerSymbol对象大小,设置为5
pSimpleMarkerSymbol.Size = 5;

//显示外框线
pSimpleMarkerSymbol.Outline = true;

//为外框线设置颜色

IRgbColor pLineRgbColor = new RgbColorClass();
pLineRgbColor.Green = 255;
pSimpleMarkerSymbol.OutlineColor = pLineRgbColor as IColor;

//设置外框线的宽度

pSimpleMarkerSymbol.OutlineSize = 1;


如何使用这个符号,在接下来介绍Renderer对象的时候将为大家演示如何用创建的点符号去符号化一个图层。


2. LineSymbol对象

LineSymbol对象是用于修饰线型几何对象的符号,它拥有八个子类如表3所示,其中不同的子类可以产生不同类型的线符号,所有的LineSymbol类都实现了ILineSymbol接口, ILineSymbol定义了两个公共属性:Color和Width。

表三

 

线符号类型

描述

CartographicLineSymbol

实心或者虚线线符号

HashLineSymbol

离散线符号

MarkerLineSymbol

点线符号

MultiLayerLineSymbol

多符号叠加产生新线符号

PictureLineSymbol

图片线符号

SimpleLine3DSymbol 

3D 线符号

SimpleLineSymbol

预定义风格的线符号

TextureLineSymbol (3DAnalyst)

纹理贴 图线符号

常用的LineSymbol如下图所示:

 

符号化Symbol(符号)体系

ArcGIS Engine9.3为开发人员提供了32种符号,主要分为三大类符号MarkerSymbol(点符号)、 LineSymbol(线符号)和FillSymbol(填充符号)来绘制地理要素的几何图形。此外还有两种特殊类型的符号:一种是TextSymbol用于文字标注;另一种是3D Chart符号,用于显示饼图等三维对象,如需详细了解请查找帮助文档。

1. MarkerSymbol对象

MarkerSymbol用于修饰点对象的符号,它拥有十三个子类如表2所示,其中不同的子类可以产生不同类型的点符号。所有的MarkerSymbol类都实现了IMarkerSymbol接口,这个接口定义了标记符号的公共方法和属性,如角度、颜色、大小和X,Y偏移量等

表二

 

点符号类型

描述

ArrowMarkerSymbol

预定义的肩头符号

BarChartSymbol

柱状图符号

CharacterMarker3DSymbol

三维字体符号

CharacterMarkerSymbol

字体符号

Marker3DSymbol

3D 符号

MultiLayerMarkerSymbol

多个符号叠加产生新点符号

PictureMarkerSymbol

图片符号(bmp或emf)

PiechartSymbol

饼图符号

SimpleMarker3DSymbol

简单3D符号

SimpleMarkerSymbol

简单符号

StackedChartSymbol

堆叠符号

TextMarkerSymbol

文字符号用来符号化点  

常用的有以下5种 类型:

 

如何创建MarkerSymbol?接下来以SimpleMarkerSymbol构建为例演示如何创建一个点符号:


//创建SimpleMarkerSymbolClass对象

ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();

//创建RgbColorClass对象为pSimpleMarkerSymbol设置颜色

IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 255;
pSimpleMarkerSymbol.Color = pRgbColor as IColor;

//设置pSimpleMarkerSymbol对象的符号类型,选择钻石
pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;

//设置pSimpleMarkerSymbol对象大小,设置为5
pSimpleMarkerSymbol.Size = 5;

//显示外框线
pSimpleMarkerSymbol.Outline = true;

//为外框线设置颜色

IRgbColor pLineRgbColor = new RgbColorClass();
pLineRgbColor.Green = 255;
pSimpleMarkerSymbol.OutlineColor = pLineRgbColor as IColor;

//设置外框线的宽度

pSimpleMarkerSymbol.OutlineSize = 1;


如何使用这个符号,在接下来介绍Renderer对象的时候将为大家演示如何用创建的点符号去符号化一个图层。


2. LineSymbol对象

LineSymbol对象是用于修饰线型几何对象的符号,它拥有八个子类如表3所示,其中不同的子类可以产生不同类型的线符号,所有的LineSymbol类都实现了ILineSymbol接口, ILineSymbol定义了两个公共属性:Color和Width。

表三

 

线符号类型

描述

CartographicLineSymbol

实心或者虚线线符号

HashLineSymbol

离散线符号

MarkerLineSymbol

点线符号

MultiLayerLineSymbol

多符号叠加产生新线符号

PictureLineSymbol

图片线符号

SimpleLine3DSymbol 

3D 线符号

SimpleLineSymbol

预定义风格的线符号

TextureLineSymbol (3DAnalyst)

纹理贴 图线符号

常用的LineSymbol如下图所示:

如何创建LineSymbol?接下来以MarkerLineSymbol构建为例演示如何创建一个线符号:


IArrowMarkerSymbol pArrowMarker = new ArrowMarkerSymbolClass();

IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 255;
pArrowMarker.Color = pRgbColor as IColor; 
pArrowMarker.Length = 10;
pArrowMarker.Width = 8;
pArrowMarker.Style = esriArrowMarkerStyle.esriAMSPlain;

IMarkerLineSymbol pMarkerLine = new MarkerLineSymbolClass();
pMarkerLine.MarkerSymbol = arrowMarker;

IRgbColor pLineColor = new RgbColorClass();
pLineColor.Blue = 255;
pMarkerLine.Color = pLineColor as IColor;

3. FillSymbol对象

FillSymbol是用来修饰如多边形等具有面积的几何形体的符号对象,它拥有十一个子类如表4所示它实现了IFillSymbol,这个接口定义了两个属性Color和OutLine,以满足所有类型的FillSymbol对象的公共属性设置。

表四

 

填充符号类型

描述

ColorRampSymbol (Carto)

用于渲染Raster数据的颜色带

ColorSymbol (Carto)

用于渲染Raster数据的颜色符号

DotDensityFillSymbol

点密度填充符号

GradientFillSymbol

渐变填充符号

LineFillSymbol

包含线符号的填充符号

MarkerFillSymbol

包含点符号的填充符号

MultiLayerFillSymbol

多符号叠加产生新填充符号

PictureFillSymbol

图片填充符号

RasterRGBSymbol

用于渲染Raster数据 RGBSymbol

SimpleFillSymbol

简单填充符号

TextureFillSymbol

纹理贴图填充符号

常用的FillSymbol如下图所示:

如何创建FillSymbol?接下来以MarkerLineSymbol构建为例演示如何创建一个线符号:

//为填充符号创建外框线符号

IColor pLineColor = new RgbColorClass();

ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();

pCartoLineSymbol.Width = 2;

pCartoLineSymbol.Color = pLineColor;

//创建一个填充符号

ISimpleFillSymbol pSmplFillSymbol = new SimpleFillSymbol();

//设置填充符号的属性

IColor pRgbClr = new RgbColorClass();

IFillSymbol pFillSymbol = pSmplFillSymbol;

pFillSymbol.Color = pRgbClr;


pFillSymbol.Outline = pCartoLineSymbol;

如果没有ArcGIS Desktop使用经验的开发看了以上代码片段会一头雾水,不明白填充符号的创建为什么还要创建线符号等等,如果有ArcGIS Desktop使用经验就会非常容易理解这些符号的创建的机制,如图8是SimpleFillSymbol设置信息。所以熟悉ArcGIS Desktop的使用对开发人员进行ArcGIS Engine开发非常有用。

 

4. TextSymbol对象

TextSymbol对象是用于修饰文字元素的,文字元素在要素标注等方面很有用处。TextSymbol符号最重要的设置对象是它的字符,它实现了三个主要的接口来设置字符:ITextSymbol 、 ISimpleTextSymbol 和 IFormattedTextSymbol 。

ITextSymbol接口是定义文本字符样式的主要接口,它定义的ITextSymbol::Font属性是产生一个TextSymbol符号的关键。可以使用IFontDisp接口来设置字体的大小和是否是粗体、倾斜等属性。使用ITextSymbol接口还可以定义TextSymbol对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。 

以下是一个构建TextSymbol的函数:

///<summary>

///生成文本符号

///</summary>

///<param name="pTxtSymbol">文本符号</param>

///<param name="sFontName">字体名称</param>

///<param name="iFont">字体大小</param>

///<param name="iColor">字体颜色</param>

public static void MakeTextSymbol(ref ITextSymbol pTxtSymbol, string sFontName, int iFont, int iColor)

{

try
{
pTxtSymbol.Font.Name = sFontName;


pTxtSymbol.Font.Size = (decimal)iFont;


IRgbColor pRGBColor = new RgbColorClass();


pRGBColor.RGB = iColor;

pTxtSymbol.Color = (IColor)pRGBColor;


pTxtSymbol.Angle = 0;


pTxtSymbol.RightToLeft = false;


pTxtSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHACenter;


pTxtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVABaseline;


}

catch (Exception Err)
{

MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}


5. 3DChartSymbol对象

3DChartSymbol是一个抽象类,它拥有三个子类:BarChart、PieChart和StackedChart。如下图所示:

 

BarChartSymbol是最常用的三维着色符号,它使用不同类型的柱子来代表一个要素类中不同的属性,而柱子的高度取决于属性值的大小。

PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。

PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。

至于如何创建这些3DChartSymbol符号这里不再提供代码片段演示,读者可以根据前边学习的知识,自己操作ArcGIS Desktop使用3DChartSymbol制作专题图,然后根据ArcGIS Engine的帮助文档开发创建3DChartSymbol。

 

 

 

 

 

 

 

 

 

 

 

使用ServerStyle

如果熟悉ArcGIS Desktop的使用,就会对Style符号库文件有所了解,相对应的在ArcGIS Engine开发中对应的是ServerStyle符号库,它的结构体系如下图所示。可以通过专门的转换程序把ArcGIS Desktop Style符号库转换为ArcGIS Engine所能够使用的ServerStyle符号库。
用于获取ServerStyle符号库中的符号主要涉及到以下接口如表所示:

 

接口名称

功能描述

IStyleGallery

用于管理Style Gallery

IStyleGalleryStorage

管理Style Gallery中的符号库文件

IStyleGalleryClass

控制符号库中Style Gallery Class

IEnumStyleGalleryItem

枚举一组Style Gallery items

IStyleGalleryItem

定义Style Galle ry itme

4.5.1获取符号库中符号

如何获取到一个符号库中符号?接下来以获取ESRI符号库中名称为Rose的符号的流程:

1.首先构建一个ServerStyleGallery对象
2.其次使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件
3.遍历ServerGallery中的Class,如果是FillSymbol使用IStyleGallery的GetItems方法返回一个可枚举的包含一系列StyleGalleryItem的EnumStyleGalleryItem对象。
4.遍历EnumServerStyleGalleryItme枚举对象中的StylegalleryItme如果名称是Rose即可获取ESRI符号库中名称为Rose的StylegalleryItme,然后通过IStyleGalleryItem的Item属性即可转换为ISymbol。

整个流程图如下图所示:

 

SymbologyControl控件

SymbologyControl用来显示ServerStyle符号库中的符号样式,可以选择在该控件上选择一个符号用来符号化一个图层或者作为一个Element的符号。使用SymbologyControl可以再设计的模式下在其属性页中加载ServerStyle符号库文件,同样也可以使用的LoadStyleFile和RemoveFile方法加载和移除Serverstyle符号库文件。运行效果如下图所示:

 

符号化之Renderer( 渲染)体系

ArcGIS Engine9.3对GIS数据的符号化分为矢量数据渲染和栅格数据渲染两大类。接下来分别介绍FeatureRender和RasterRender。

1. FeatureRender对象

FeatureRenderer是一个抽象类,它有15个子类负责进行不同类型的着色运算。它们都实现了IFeatureRenderer接口,这个接口定义了进行要素图层符号化的公共属性和方法。

可以通过IGeoFeatureLayer::Renderer属性获得一个要素图层的符号化对象

表四

 

要素符号化类型

描述

SimpleRender

简单符号化

UniqueValueRender

唯一值符号化

BiUniqueValueRender

双变量唯一值符号化

ChartRender

图表符号化

ClassBreaksRenderer

分类等级符号化

DotDensityRenderer

点密度符号化

ProportionalSymbolRenderer

根据属性值设置符号大小进行符号化

ScaleDependentRenderer

依比例尺符号化

RepresentationRenderer

制图表达符号化

CoTrackSymbologyRenderer(TrackingAnalyst)

轨迹符号化(应用于TrackingAnaylyst扩展模块)

EnhancedInfoRenderder(TrackingAnalyst)

增强信息符号化(应用于TrackingAnaylyst扩展模块)

UniqueValueTextRenderer(TrackingAnalyst)

唯一值文本符号化(应用于TrackingAnaylyst扩展模块)

NAStopRenderer(NetworkAnalyst)

停止符号化(应用于网络分析扩展模块)

FeatureVertexRenderer(SurveyExt)

要素定点符号化(应用于测量分析扩展模块)

SharedEdgeRenderer(EditorExt)

用于绘制拓扑元素


常用的要素符号化类型主要有以下6种类型,如下图所示:

 

2. RasterRender对象

RasterRender是一个抽象类,它有15个子类负责进行不同类型的着色运算。它们都实现了IRasterRender接口,这个接口定义了栅格图层符号化的公共属性和方法。可以通过IRasterLayer::Renderer属性获得一个栅格图层的符号化对象。

要素符号化类型

描述

RasterRGBRenderer

栅格RGB符号化

RasterUniqueValueRenderer

唯一值符号化

RasterColormapRenderer

双变量唯一值符号化

RasterClassifyColorRampRenderer

图表符号化

RasterStretchColorRampRenderer

分类等级符号化

RasterDiscreteColorRenderer

点密度 符号化

栅格符号化类型结构图如下图所示:

 

以下代码片段是对一个RasterLayer进行RasterStretchColorRampRenderer符号化操作:


///<summary>

/// StretchColorRamp符号化RasterLayer

///</summary>

///<param name="pRasterLayer">RasterLayer</param>

public void SetStretchColorRampRenderer(IRasterLayer pRasterLayer)
{

try
{

//创建RasterStretchColorRampRendererClass对象

IRasterStretchColorRampRenderer pRStretchRender= new RasterStretchColorRampRendererClass();

//QI到IRasterRenderer

IRasterRenderer pRasterRender=pRStretchRender as IRasterRenderer;
pRasterRender.Raster = pRasterLayer as IRaster;

pRasterRender.Update();

//创建两个起始颜色

IRgbColor pFromRgbColor = new RgbColorClass();
pFromRgbColor.Red = 255;

IRgbColor pToRgbColor = new RgbColorClass();
pToRgbColor.Blue = 255;

//创建起止颜色带

IAlgorithmicColorRamp pAlgorithmicColorRamp = new AlgorithmicColorRampClass();
pAlgorithmicColorRamp.Size = 255;
pAlgorithmicColorRamp.FromColor = pFromRgbColor as IColor;
pAlgorithmicColorRamp.ToColor = pToRgbColor as IColor;

bool btrue= true;
pAlgorithmicColorRamp.CreateRamp(out btrue);

//选择拉伸颜色带符号化的波段
pRStretchRender.BandIndex = 0;

//设置拉伸颜色带符号化所采用的颜色带
pRStretchRender.ColorRamp = pAlgorithmicColorRamp as IColorRamp;
pRasterRender.Update();

//符号化RasterLayer
pRasterLayer.Renderer = pRasterRender;


}

catch(Exception Err)
{

MessageBox.Show(Err.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

 

 

ArcGIS Engine开发 --图层符号化(四)

 

利用ESRI自带的符号库进行唯一值符号化一图层开发实例

实现唯一值符号化功能代码如下:

///<summary>

///获取符号库中符号

///</summary>

///<param name="sServerStylePath">符号库全路径名称</param>

///<param name="sGalleryClassName">GalleryClass名称</param>

///<param name="symbolName">符号名称</param>

///<returns>符号</returns>

private ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
{

try
{

//ServerStyleGallery对象

IStyleGallery pStyleGaller = new ServerStyleGalleryClass();

IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;

IEnumStyleGalleryItem pEnumSyleGalleryItem=null;

IStyleGalleryItem pStyleGallerItem = null;

IStyleGalleryClass pStyleGalleryClass = null;

//使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件

pStyleGalleryStorage.AddFile(sServerStylePath);

//遍历ServerGallery中的Class

for (int i = 0; i < pStyleGaller.ClassCount; i++)
{
pStyleGalleryClass = pStyleGaller.get_Class(i);

if (pStyleGalleryClass.Name != sGalleryClassName)

    continue;

//获取EnumStyleGalleryItem对象
pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");
pEnumSyleGalleryItem.Reset();

//遍历pEnumSyleGalleryItem
pStyleGallerItem = pEnumSyleGalleryItem.Next();

while (pStyleGallerItem != null)

{
if (pStyleGallerItem.Name == symbolName)
{

//获取符号

ISymbol pSymbol = pStyleGallerItem.Item as ISymbol;
System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
return pSymbol;
}
pStyleGallerItem = pEnumSyleGalleryItem.Next();
}

}

System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);

return null;
}

catch (Exception Err)

{

MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

return null;
}
}

///<summary>

///设置要素图层唯一值符号化

///</summary>

///<param name="pFeatureLayer"></param>

private void UniqueValueRenderFlyr(IFeatureLayer pFeatureLayer)

{

try
{

//创建UniqueValueRendererClass对象

IUniqueValueRenderer pUVRender = new UniqueValueRendererClass();

List<string> pFieldValues= new List<string>();
pFieldValues.Add("Hospital 2");
pFieldValues.Add("School 1");
pFieldValues.Add("Airport");

for(int i=0;i<pFieldValues.Count;i++)
{

    ISymbol pSymbol= new SimpleMarkerSymbolClass();
    pSymbol =GetSymbol(@"C:\Program Files\ArcGIS\Styles\ESRI.ServerStyle","Marker Symbols",pFieldValues[i])

//添加唯一值符号化字段值和相对应的符号
pUVRender.AddValue(pFieldValues,pFieldValues,pSymbol);
}

//设置唯一值符号化的字段个数和字段名
pUVRender.FieldCount = 1;

pUVRender.set_Field(0, "类别");

IGeoFeatureLayer pGFeatureLyr = pFeatureLayer as IGeoFeatureLayer;

//设置IGeofeatureLayer的Renderer属性
pGFeatureLyr.Renderer = pUVRender as IFeatureRenderer;
}

catch (Exception Err)
{

MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void button1_Click(object sender, EventArgs e)
{

IFeatureLayer pFeatureLayer = this.axMapControl1.get_Layer(0) as IFeatureLayer;

UniqueValueRenderFlyr(pFeatureLayer);

this.axMapControl1.Refresh();
}

设计GIS系统符号化模块

大家首先有个观念:用ArcEngine开发C/S应用程序时,一个成熟的GIS项目在加载数据这方面是不允许直接把SDE里边的数据以MXD的形式组织起来这是不科学的,原因如下:

1.从数据安全性考虑

一个MXD文档包含了SDE数据库里与MXD数据的详细信息,通常对于数据拥有者来说是不希望外部能够获取这些信息的。

2.从系统灵活性考虑
通过程序动态加载所需同层,动态符号化相关图层能够为程序带来很大的灵活性,例如根据不同的用户的权限从数据库加载不同的数据,符号化不同的图层等等。习惯直接在MapControl上Load MXD File的就会有疑问,不通过MXD怎么展现图层的符号化。

接下来我将从两种途径给大家介绍一下如果动态符号化图层:

使用ArcEngine开发C/S应用程序数据加载一个重要的功能模块,在数据加载模块符号图层是其技术核心之一:

1. 通过系统符号化配置表存储图层符号化信息符号化图层。

首先在关系型数据库中创建一个图层符号化配置表详细记录每一个图层的符号化信息,如下表(我只列出简单符号化的配置表设计,至于唯一值等大家可以自己根据需求设计):

图层ID

符号化类型

符号库ID 

符号名称

符号类型

点图层1

简单符号化

1

火车站

线图层1

简单符号化

2

铁路线

线

面图层1

简单符号化

3

绿色面

然后使用ArcEngine提供的每种符号化类型的接口对图层进行符号化渲染。

2. 通过ArcEngine提供的Represatation存储要素符号化

Representation是ArcGIS9.3的新特性,能够通过Representation制作更精美,更复杂的地图操作过程,下图是ArcGIS Desktop中Repre sentation工具条。

 

通过一下操作可以把通过Representation工具条制作出来的地图效果存储在要素类中(只能是Geodat abase类型的)。

 

 

从以上可以看出每一个要素的符号化信息都以Blob方式存储在相对应的数据表中,这样就不需要通过配置表的设置进行动态符号化,直接通过Engine中提供的与Representation相关的接口和类符号化每一个图层。

这篇关于符号化Symbol(符号)体系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529289

相关文章

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

Java异常体系----深入讲解

JAVA异常体系 1.error 错误 程序无法处理的异常, 它是由JVM产生和抛出的,比如OutOfMemoryError.ThreadDeath等 示例: public class Test {public static void main(String[] args) {run();}public static void run(){run();}} 堆栈溢出,这是由于JV

软件架构风格: C2体系风格

通俗示例 想象一下你正在使用一套乐高积木来搭建一个复杂的模型。每块乐高积木都是一个独立的部件,而乐高积木之间的接口设计得非常标准化,使得你可以轻松地将不同的积木组合在一起。如果你想要更换掉模型中的某一块积木,你只需要把它拔下来,然后插入新的积木即可,不需要重新设计整个模型。 通俗解释 C2体系风格 C2是一种软件体系结构风格,它强调组件之间的松耦合和高内聚。在C2风格中,软件系统被设计为一

【流程图】流程图符号

1、常用符号 2、例子(胡乱画的)

有符号和无符号的转化

1.无符号转有符号 测试结果: 2.有符号转换为无符号数 测试结果: 其他

流程图符号速查:快速掌握流程图绘制要点

流程图是一种以图形化方式表示算法或过程的步骤和逻辑关系的图表,它通过使用一系列标准的符号和连接线来清晰地展示流程的顺序和决策点。这种表示方法不仅使得复杂的过程更加易于理解,而且也便于跟踪和优化。以下是对流程图的进一步扩写,包括其制作步骤、应用场景和一些实用技巧。流程图常常用来表示一些动态过程,通常会有一个“起点”, 可以有一个或多个终点,流程图可以直观、明确地表示动态过程从开始到结束的全部步骤,在

Hessian矩阵判定极值之MATLAB实现符号解

By WC 1.9 .2015 1.Hessian矩阵 其定义如下: 如果函数f在D区域内二阶连续可导,那么黑塞矩阵H(f) 在 D 内为对称矩阵。原因是:如果函数f连续,则二阶偏导数的求

大数据开发体系,进来了解一下?

“5G失败、物联网已死、鼓吹大数据无用论”打开手机又是承接今日份的“丧”, 这种丧味十足的帖子我们已经被投喂得太多了 ,还是原来的配方,还是熟悉的味道,说这些话的人,多少显得无聊而耸人听闻。 有这样一句话叫数据重构商业,流量改变未来。不管怎么唱衰,大数据时代已经向我们滚滚而来,早已成为现代社会不可缺少的一部分。 “不参与大数据建设,10年后一定后悔”。 早在几年前,马云就在某次

Spark 全套知识体系,终于搞到了!

福利手慢无 ☆☞ 廖雪峰的大数据开发必备教程-Spark视频资料终于免费啦!限额领取~ 2019年已过去3/4,年初许下的愿实现了吗?可爱的程序员们都有哪些愿望呢? 找个女朋友。升级电脑、键盘、鼠标等。来一次说走就走的旅行。升职&加薪。…… 说起“升职&加薪”,一向“多金”的程序员们,今年的职场晋升似乎并非那么顺畅。说是大环境所致,这也没错。 但有一部

SaaS系列介绍之十三: SaaS系统体系架构

1 系统体系架构设计   软件开发中系统体系架构决定了一个系统稳定性、健壮性、可扩展性、兼容性和可用性,它是系统的灵魂。体系架构是架构师所关注的核心。良好的体系架构是系统成功的开端,否则,再好的代码与设计也无济于事。   2 当前.net主要的开发框架简介   l Castle   Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、A