淘宝客户自己做网站怎么做山东手工活外发加工网

当前位置: 首页 > news >正文

淘宝客户自己做网站怎么做,山东手工活外发加工网,电商平台营销方案,宁波seo推广优化ArcGIS Pro SDK #xff08;七#xff09;编辑 12 编辑模版 文章目录 ArcGIS Pro SDK #xff08;七#xff09;编辑 12 编辑模版1 在图层上按名称查找编辑模板2 查找属于独立表的表模板3 当前模板4 更改模板的默认编辑工具5 隐藏或显示模板上的编辑工具6 使用图层创建新模…ArcGIS Pro SDK 七编辑 12 编辑模版 文章目录 ArcGIS Pro SDK 七编辑 12 编辑模版1 在图层上按名称查找编辑模板2 查找属于独立表的表模板3 当前模板4 更改模板的默认编辑工具5 隐藏或显示模板上的编辑工具6 使用图层创建新模板7 使用表创建新表模板8 更新表模板9 创建注释模板10 删除表模板11 活动模板已更改 环境Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 在图层上按名称查找编辑模板 ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() {// 获取模板var map ArcGIS.Desktop.Mapping.MapView.Active.Map;if (map null)return;var mainTemplate map.FindLayers(main).FirstOrDefault()?.GetTemplate(Distribution);var mhTemplate map.FindLayers(Manhole).FirstOrDefault()?.GetTemplate(Active);});2 查找属于独立表的表模板 ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() {var map ArcGIS.Desktop.Mapping.MapView.Active.Map;if (map null)return;// 获取特定的表模板var tableTemplate map.FindStandaloneTables(Address Points).FirstOrDefault()?.GetTemplate(Residences);// 获取独立表的所有模板var ownersTableTemplates map.FindStandaloneTables(Owners).FirstOrDefault()?.GetTemplates();var statisticsTableTemplates MapView.Active.Map.GetStandaloneTablesAsFlattenedList().First(l l.Name.Equals(Trading Statistics)).GetTemplates();});3 当前模板 EditingTemplate template EditingTemplate.Current;4 更改模板的默认编辑工具 public Task ChangeTemplateDefaultToolAsync(ArcGIS.Desktop.Mapping.FeatureLayer flayer,string toolContentGUID, string templateName) {return ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() {// 通过名称从图层中检索编辑模板var template flayer?.GetTemplate(templateName) as ArcGIS.Desktop.Editing.Templates.EditingTemplate;// 获取图层的定义var layerDef flayer?.GetDefinition() as ArcGIS.Core.CIM.CIMFeatureLayer;if ((template null) || (layerDef null))return;if (template.DefaultToolID ! this.ID){bool updateLayerDef false;if (layerDef.AutoGenerateFeatureTemplates){layerDef.AutoGenerateFeatureTemplates false;updateLayerDef true;}// 检索 CIM 编辑模板定义var templateDef template.GetDefinition();// 分配工具 DAML 定义中的 GUID例如// tool idTestConstructionTool_SampleSDKTool categoryRefIDesri_editing_construction_polyline ….// tooltip headingTooltip textdisabledText //tooltip// content guide58239b3-9c69-49e5-ad4d-bb2ba29ff3ea /// /tool// 然后 toolContentGUID 将是 e58239b3-9c69-49e5-ad4d-bb2ba29ff3ea// 在 2.x 版本中 -//templateDef.ToolProgID toolContentGUID;templateDef.DefaultToolGUID toolContentGUID;// 设置定义template.SetDefinition(templateDef);// 也更新图层定义if (updateLayerDef)flayer.SetDefinition(layerDef);}}); }5 隐藏或显示模板上的编辑工具 QueuedTask.Run(() {// 隐藏图层上的所有工具除了线工具var featLayer MapView.Active.Map.FindLayers(Roads).First();var editTemplates featLayer.GetTemplates();var newCIMEditingTemplates new ListCIMEditingTemplate();foreach (var et in editTemplates){// 初始化模板通过激活默认工具et.ActivateDefaultToolAsync();var cimEditTemplate et.GetDefinition();// 获取此模板上的可见工具var allTools et.ToolIDs.ToList();// 添加此模板上的隐藏工具allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList());// 隐藏所有工具然后允许线工具// 在 2.x 版本中 -//allTools.AddRange(cimEditTemplate.GetExcludedToolDamlIds().ToList());allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList());// 在 2.x 版本中 - //cimEditTemplate.SetExcludedToolDamlIds(allTools.ToArray());//cimEditTemplate.AllowToolDamlID(esri_editing_SketchLineTool);cimEditTemplate.SetExcludedToolIDs(allTools.ToArray());cimEditTemplate.AllowToolID(esri_editing_SketchLineTool);newCIMEditingTemplates.Add(cimEditTemplate);}// 更新图层模板var layerDef featLayer.GetDefinition() as CIMFeatureLayer;// 将 AutoGenerateFeatureTemplates 设置为 false 以使模板更改生效layerDef.AutoGenerateFeatureTemplates false;layerDef.FeatureTemplates newCIMEditingTemplates.ToArray();featLayer.SetDefinition(layerDef);});6 使用图层创建新模板 var layer MapView.Active.Map.GetLayersAsFlattenedList().OfTypeFeatureLayer().FirstOrDefault(); if (layer null)return; QueuedTask.Run(() {var insp new Inspector();insp.LoadSchema(layer);insp[Field1] value1;insp[Field2] value2;insp[Field3] value3;var tags new[] { Polygon, tag1, tag2 };// 使用 daml-id 设置默认工具 string defaultTool esri_editing_SketchCirclePolygonTool;// 工具过滤器是要过滤掉的工具var toolFilter new[] { esri_editing_SketchTracePolygonTool };// 创建一个新模板 var newTemplate layer.CreateTemplate(My new template, description, insp, defaultTool, tags, toolFilter);});7 使用表创建新表模板 var table MapView.Active.Map.GetStandaloneTablesAsFlattenedList().FirstOrDefault(); if (table null)return; QueuedTask.Run(() {var tableTemplate table.GetTemplate(Template1);var definition tableTemplate.GetDefinition();definition.Description New definition;definition.Name New name;// 使用此定义创建新表模板table.CreateTemplate(definition);// 也可以使用此扩展方法创建新表模板。可以像使用 layer.CreateTemplate 方法一样使用此方法。table.CreateTemplate(New template name, Template description, tags: new string[] { tag 1, tag 2 });});8 更新表模板 QueuedTask.Run(() {var tableTemplate table.GetTemplate(Template1);var definition tableTemplate.GetDefinition();definition.Description New definition;definition.Name New name;// 更新定义tableTemplate.SetDefinition(definition);});9 创建注释模板 // 获取注释图层 AnnotationLayer annoLayer MapView.Active.Map.GetLayersAsFlattenedList().OfTypeAnnotationLayer().FirstOrDefault(); if (annoLayer null)return;QueuedTask.Run(() {Inspector insp null;// 获取注释要素类var fc annoLayer.GetFeatureClass() as ArcGIS.Core.Data.Mapping.AnnotationFeatureClass;// 获取包含标签、符号的要素类 CIM 定义var cimDefinition fc.GetDefinition() as ArcGIS.Core.Data.Mapping.AnnotationFeatureClassDefinition;var labels cimDefinition.GetLabelClassCollection();var symbols cimDefinition.GetSymbolCollection();// 确保有标签和符号if ((labels.Count 0) || (symbols.Count 0))return;// 查找所需的标签类// 通常会使用子类型名称或其他特征// 在此情况下只使用第一个var label labels[0];// 每个标签都有一个 textSymbol// symbolName 应该是要使用的 symbolIDvar symbolName label.TextSymbol.SymbolName;int symbolID -1;if (!int.TryParse(symbolName, out symbolID)){// int.TryParse 失败 - 尝试在符号集合中查找 symbolNameforeach (var symbol in symbols){if (symbol.Name symbolName){symbolID symbol.ID;break;}}}// 没有符号if (symbolID -1)return;// 加载架构insp new Inspector();insp.LoadSchema(annoLayer);// 可以使用 inspector[fieldName] 方法分配这些字段// 这些字段在注释架构中保证存在insp[AnnotationClassID] label.ID;insp[SymbolID] symbolID;// 设置一些附加的注释属性AnnotationProperties annoProperties insp.GetAnnotationProperties();annoProperties.FontSize 36;annoProperties.TextString My Annotation feature;annoProperties.VerticalAlignment VerticalAlignment.Top;annoProperties.HorizontalAlignment HorizontalAlignment.Justify;insp.SetAnnotationProperties(annoProperties);var tags new[] { Annotation, tag1, tag2 };// 使用 daml-id 而不是 guidstring defaultTool esri_editing_SketchStraightAnnoTool;// 工具过滤器是要过滤掉的工具var toolFilter new[] { esri_editing_SketchCurvedAnnoTool };// 创建一个新模板var newTemplate annoLayer.CreateTemplate(new anno template, description, insp, defaultTool, tags, toolFilter);});10 删除表模板 var table MapView.Active.Map.GetStandaloneTablesAsFlattenedList().FirstOrDefault(); if (table null)return; QueuedTask.Run(() {var tableTemplate table.GetTemplate(Template1);// 删除表模板table.RemoveTemplate(tableTemplate);// 通过名称删除模板table.RemoveTemplate(Template2);});11 活动模板已更改 ArcGIS.Desktop.Editing.Events.ActiveTemplateChangedEvent.Subscribe(OnActiveTemplateChanged);async void OnActiveTemplateChanged(ArcGIS.Desktop.Editing.Events.ActiveTemplateChangedEventArgs args) {// 如果传入的模板为空则返回if (args.IncomingTemplate null)return;// 为图层地图中的 Freeway 模板激活两点线工具if (args.IncomingTemplate.Name Freeway args.IncomingMapView.Map.Name Layers)await args.IncomingTemplate.ActivateToolAsync(esri_editing_SketchTwoPointLineTool); }