打开符号编辑器 |
打开符号编辑器,包括打开点符号编辑器,打开线型符号编辑器、打开填充符号编辑器以及打开三维点符号编辑器和三维线型符号编辑器,都是通过 SymbolEditDialog 类的 ShowDialog 方法实现的,使用该方法打开符号编辑器需要注意以下几个关键点:
方法:SymbolEditDialog.ShowDialog(Symbol symbol, Resources resources, string title)
下面将通过代码段展示如何打开符号编辑器,并且采用了多样的方式打开符号编辑器,每个代码段打开相应的符号编辑器的方式同样适用于打开其他类型的符号编辑器,将被编辑的符号替换为其他类型的符号即可打开其他对应类型的符号编辑器。
以下代码示范了如何打开符号编辑器,并对指定的点符号进行编辑,即打开点符号编辑器。下列代码要求已经创建了一个 Workspace 实例,实例的名称(name)为:workspace。
// 获取工作空间的资源集合。
Resources resources = workspace.Resources;
// 获取资源集合中点符号库中的一个点符号(根组下的第一个点符号)。
Symbol symbol = resources.MarkerLibrary.RootGroup[0];
// 打开点符号编辑器。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbol, resources);
// 在打开的点符号编辑器中,编辑当前点符号,然后单击“确定”按钮,将编辑结果保存到当前点符号库中。
// 从当前点符号库中再次获取根组下的第一个点符号,即上述编辑的点符号。
Symbol symbolAferEdit = resources.MarkerLibrary.RootGroup[0];
// 再次打开点符号编辑器,查看编辑后的点符号,也可以继续进行编辑。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbolAferEdit, resources,"编辑后的点符号");
// 要将符号编辑结果最终保存下来,需要将符号所在的符号库进行保存,
// 可以通过保存符号库所在的工作空间或者导出符号库文件,实现符号库的保存。
以下代码示范了如何打开符号编辑器,并对指定的线型符号进行编辑,即打开线型符号编辑器。
// 新建一个资源库对象。
Resources resources = new Resources();
// 将 SuperMap 线型符号库文件导入到资源库中的线型符号库,
// 即资源库中的线型符号库资源为指定的线型符号库文件所存储的线型符号库内容。
resources.LineLibrary.FromFile(@"..\Data\LineLibrary.lsl");
// 在线型符号库中找到符号编号为962025的线型符号作为需要编辑的符号。
Symbol symbol = resources.LineLibrary.FindSymbol(962025);
// 在线型符号编辑器中打开需要编辑的线型符号,对该线型符号进行编辑操作。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbol, resources);
以下代码示范了如何打开符号编辑器,并对指定的填充符号进行编辑,即打开填充符号编辑器。
// 新建一个资源库对象。
Resources resources = new Resources();
// 将 SuperMap 线型符号库文件导入到资源库中的线型符号库,
// 即资源库中的线型符号库资源为指定的线型符号库文件所存储的线型符号库内容。
resources.FillLibrary.FromFile(@"..\Data\FillLibrary.bru");
// 在线型符号库中找到符号编号为962025的线型符号作为需要编辑的符号。
Symbol symbol = resources.FillLibrary.FindSymbol(99);
// 在线型符号编辑器中打开需要编辑的线型符号,对该线型符号进行编辑操作。
SuperMap.UI.SymbolEditDialog.ShowDialog(symbol, resources);
以下代码示范了如何打开符号编辑器,并对指定的三维线型符号进行编辑,即打开三维线型符号编辑器。
// 新建一个资源库对象。
Resources resources = new Resources();
// 将 SuperMap 线型符号库文件导入到资源库中的线型符号库,
// 即资源库中的线型符号库资源为指定的线型符号库文件所存储的线型符号库内容。
resources.LineLibrary.FromFile(@"..\Data\LineLibrary.lsl");
// 在线型符号库中找到符号名称为“Line3D”的线型符号作为需要编辑的符号。
Symbol symbol = resources.LineLibrary.FindSymbol("Line3D");
// 构造一个新的 SymbolEditDialog 对象。
SuperMap.UI.SymbolEditDialog symbolEditDialog = new SuperMap.UI.SymbolEditDialog();
// 设置在符号编辑器中打开进行编辑的符号。
symbolEditDialog.Symbol = symbol;
// 设置需要编辑的符号所在的资源库。
symbolEditDialog.Resources = resources;
// 设置符号编辑器对话框的标题栏所显示的文本内容。
symbolEditDialog.Title = "编辑 Line3D 三维线型符号";
// 打开三维符号编辑器。
symbolEditDialog.ShowDialog();
// 在符号编辑器中对打开的三维符号进行编辑操作......
以下代码示范了如何打开符号编辑器,并对新建的三维点符号进行编辑,即打开三维点符号编辑器。
// 新建一个资源库对象。
Resources resources = new Resources();
// 获得一个三维模型,作为三维点符号所使用的模型。
GeoModel geoModel = new GeoModel();
geoModel.FromFile(@"..\Data\fly\airplane.sgm");
// 新建一个三维点符号,并设置三维点符号的三维模型内容。
Bitmap bitmap = Bitmap.FromFile(@"..\Data\fly\airplane.bmp") as Bitmap;
SymbolMarker3D symbolMarker3D = new SymbolMarker3D(bitmap, geoModel);
symbolMarker3D.Name = "Marker3D";
// 打开三维点符号编辑器,可以对指定的三维点符号进行编辑操作。
Symbol symbol = SuperMap.UI.SymbolEditDialog.ShowDialog(symbolMarker3D, resources);
// 将新建的并通过三维点符号编辑器编辑后的三维点符号添加到资源库中。
if (symbol != null)
{
resources.MarkerLibrary.Add(symbol);
}