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

怎么做类似站酷的网站个人网站的制作

怎么做类似站酷的网站,个人网站的制作,网站是哪个公司做,官方网站建设银行年利息是多少钱ArcGIS Pro SDK (七)编辑 12 编辑模版 文章目录 ArcGIS Pro SDK (七)编辑 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 id="TestConstructionTool_SampleSDKTool" categoryRefID="esri_editing_construction_polyline" ….>//   <tooltip heading="">Tooltip text<disabledText /></tooltip>//   <content guid="e58239b3-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 List<CIMEditingTemplate>();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().OfType<FeatureLayer>().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().OfType<AnnotationLayer>().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");
}
http://www.wangmingla.cn/news/38735.html

相关文章:

  • 做网站需要多少钱 爱问知识人东莞seo代理
  • 收费小说网站怎么做国内最好用的免费建站平台
  • 学做淘宝网站是骗子吗推广自己的网站
  • 德国网站的后缀名搜索引擎优化的英文
  • 企业建网站有这个必要吗谷歌排名推广公司
  • 泰州做网站哪家好游戏推广员好做吗
  • 邢台做网站服务商如何注册网站
  • 国际新闻快报社宁波网站制作优化服务公司
  • 橙色网站logo 配色东莞seo代理
  • 成都网站制作公司 dedecms市场监督管理局是干什么的
  • 网站规划教学设计百度推广登录入口
  • 网站查询 工信部河南新闻头条最新消息
  • 企业如何数字化转型什么是seo关键词优化
  • 网站建设项目进度计划书专业培训大全
  • 怎样自己做网站赚钱个人怎么在百度上做推广
  • 沈阳 网站开发谷歌 google
  • 侧导航网站站内推广方案
  • 我想看b站直播2023五年级下册数学优化设计答案
  • 网站三级页面怎么做百度浏览器
  • 哪个网站做中高端衣服百度下载官方下载安装
  • seo网站页面优化包含培训机构如何招生营销
  • 有哪些网站可以做pptqq推广官网
  • 完全菜鸟七天学会建网站全球外贸采购网
  • 广州优化网站关键词网站关键词排名快速提升
  • 建设电子商务网站的目的和意义百度投诉中心入口
  • wordpress关于我们aso优化平台有哪些
  • 自己做网站服务器的备案方法免费发布广告的网站
  • 团购手机网站怎么做镇江抖音seo
  • 可以做软件的网站有哪些seo系统是什么
  • 那个网站卖做防水的烤枪怎么做网站