帖子
|
它将成为一个系统的一部分,许多不同的组织都有一个或多个数据库来建立项目。我们有一个模板aprx用于显示/更改特定数据库中的数据(因此每个数据库一个aprx)。作为一项管理操作,我们需要复制模板aprx,并在每次系统中提供新数据库时替换数据源。但有时我们也会将某个特定的aprx文件中的更改推回模板(或者更糟糕的是,推回所有其他aprx文件的子集)。对于这些情况,将需要一些簿记,并确定当前的sde连接可以在这方面有所帮助。
...查看更多
12-23-202239我
|
0
|
0
|
69
|
帖子
|
我想这是我自己想出来的。似乎我做得太复杂了。我试图检索到网络数据集的路径,并将其作为参数传递给地理处理工具。但是解决方案非常简单,我只需要将实际的网络数据集层对象作为参数传递。所以基本上这是有效的:公共void RunGpTool(string toolPath, NetworkAnalystLayer ndLayer) {var args = Geoprocessing.MakeValueArray(ndLayer);IGPResult result = await地理处理。ExecuteToolAsync(toolPath, args, flags: GPExecuteToolFlags.AddOutputsToMap);}
...查看更多
12-20-202202:58点
|
0
|
0
|
75
|
帖子
|
我正在编写一个脚本,用于修复ArcGIS Pro项目中的数据源。所有数据都位于SQL server企业数据库中。由于各种原因,我想确定层添加到项目时使用的sde连接文件。正在查看arcpy的文档。映射模块,我有点困惑。在层类的dataSource属性下声明:“提示:ArcGIS Pro项目中的企业地理数据库层不保留用于创建层的数据库连接文件(.sde)的路径。”这将表明我将无法检索添加数据时使用的SDE文件。但是,当我查看updateConnectionProperties方法的文档时(同样是在层类上),您需要提供原始连接sde文件以及新连接sde文件的路径。此外,我的初始测试表明,如果您提供一个虚拟原始文件,则不会执行更新。所以,我猜原始sde连接文件的路径必须以某种方式存储在层信息中。有办法找回这个吗? In the setup I have, multiple sde files are in used, and if the script could identify these automatically it would save a lot of bookkeeping.
...查看更多
12-20-202201:14点
|
0
|
3.
|
112
|
帖子
|
我正在开发一些ArcGIS Pro UI工具,需要运行自定义python地理处理工具作为工作流程的一部分。我想在地图中抓取所选的网络数据集,并将网络数据集的路径作为参数传递给地理处理工具。使用网络数据集层上的GetDataConnection()可以很好地检索位于GDB中的网络数据集的路径。然而,当网络数据集位于sql server企业geodatabase时,我无法获得该层的有效网络数据集路径。路径最好使用网络数据集层添加到地图时使用的sde连接文件(但任何指向网络数据集的有效路径都可以在地理处理工具中使用)。这有可能吗?
...查看更多
12-20-2022中午12点
|
0
|
1
|
86
|
帖子
|
谢谢你,狼。它非常有效。
...查看更多
10-02-202201:08点
|
0
|
0
|
98
|
帖子
|
你好,查尔斯,非常感谢。这些链接对我的项目来说是非常有用的。关于你的解决方案,它是有效的,但我不能改变标记(箭头)的颜色。我认为这应该是相当简单的,但在下面的第8行设置颜色似乎不工作。它得到了我想要的使用狼解决方案下面,所以这只是我的好奇心私人静态CIMLineSymbol CreateArrowLineSymbol(系统。绘图。{var cimColor = ColorFactory.Instance.CreateColor(Color);var symbol_layers =新列表
10-02-202201:05点
|
0
|
0
|
98
|
帖子
|
嗨,我试图通过编程方式使用ArcGIS pro sdk for .net构建一个简单的线符号。它应该在每个特征的结束节点(并且仅在结束节点)处用箭头显示特征。我不确定是否需要使用线条符号和标记符号(对于一个相对简单的符号来说,这似乎有点复杂)。我的旧ArcMap应用程序,我正在迁移,我有这个代码的符号私有静态CartographicLineSymbolClass CreateArrowSymbol(颜色c) {var颜色=新的RgbColorClass(){红色= c.R,绿色= c.G,蓝色= c.B};var de = new SimpleLineDecorationElementClass();de.AddPosition (1);de.MarkerSymbol = new ArrowMarkerSymbolClass() {Color = Color, Size = 8.0, Length = 6.0};var ld = new LineDecorationClass();ld.AddElement (de);var symbol = new CartographicLineSymbolClass() {Color = Color, Width = 1.5, LineDecoration = ld}; return symbol; }
...查看更多
09-21-202203:01我
|
0
|
4
|
191
|
帖子
|
再次感谢。非常感谢您的回答。我昨天寄出的箱子很简单。代码将在我们正在做的场景管理插件中运行,并将包含动态数量的_ScnXX列(并且我们有多个带有_ScnXX后缀的属性)。根据你的回答,我认为现在对我们来说最好的工作是做以下工作:每次用户改变视图时,我们开始设置所有字段可见。然后根据用户选择设置视图。因此,原则上:private int _scnId = 0;OnClick() {_scnId = (_scnId == 0) ?1: 0;//简单的方法太在0和1之间切换每次按下按钮var table = mapview . active . map . getstandalonetablesas平坦列表().FirstOrDefault(t => t. name == "MyScenarioTable"); QueuedTask.Run(() => { var fld_descs = table.GetFieldDescriptions(); foreach (var fld_desc in fld_descs) { fld_desc.IsVisible = true; } table.SetFieldDescriptions(fld_descs); fld_descs = table.GetFieldDescriptions(); foreach (var fld_desc in fld_descs) { if (fld_desc.Name == "MyAtt_Scn0") { fld_desc.Alias = _scnId == 0 ? "MyAtt" : "MyAtt_Scn0"; fld_desc.IsVisible = (_scnId == 0); } if (fld_desc.Name == "MyAtt_Scn1") { fld_desc.Alias = _scnId == 1 ? "MyAtt" : "MyAtt_Scn1"; fld_desc.IsVisible = (_scnId == 1); } }; table.SetFieldDescriptions(fld_descs); fld_descs = table.GetFieldDescriptions(); }); } The downside of this approach is that the table window is “refreshed” two times each time the user changes the selection. So, an ArcGIS Pro bugfix would still be a good improvement. Can you report the bug or should I be involved? And in case you report it can I get a bug number in order to track it? And finally, would you venture a guess for the time frame for such a bugfix?
...查看更多
09-08-202202:36我
|
0
|
0
|
195
|
帖子
|
你好,查尔斯,谢谢你的快速回复。我同意您的代码运行良好,而且我认为我的问题与我也篡改了字段别名有关。基本上,我有一个表,有两个字段“MyAtt_Scn0”和“MyAtt_Scn1”。我只想显示这些字段中的一个,别名仅为“MyAtt”。显示哪一个取决于用户的选择。我已经做了快速的代码示例,重现了我看到的问题(这个实现只是在按钮按下时在选择之间切换):private int _scnId = 0;OnClick() {_scnId = (_scnId == 0) ?1: 0;//简单的方法太在0和1之间切换每次按钮按var表= mapview . active . map . getstandalonetablesas平坦列表().FirstOrDefault(t => t. name == " myscannariotable ");QueuedTask.Run(() => {var fld_descs = table.GetFieldDescriptions(); foreach (var fld_desc in fld_descs) { if (fld_desc.Name == "MyAtt_Scn0") { fld_desc.Alias = _scnId == 0 ? "MyAtt" : "MyAtt_Scn0"; fld_desc.IsVisible = (_scnId == 0); } if (fld_desc.Name == "MyAtt_Scn1") { fld_desc.Alias = _scnId == 1 ? "MyAtt" : "MyAtt_Scn1"; fld_desc.IsVisible = (_scnId == 1); } }; table.SetFieldDescriptions(fld_descs); }); } Maybe I should try to alter the field aliases first and applied that. Then change the visibility afterwards.
...查看更多
09-07-202201:06点
|
0
|
0
|
217
|
帖子
|
查尔斯和沃尔夫,谢谢你们的回答。我被分配到一个不同的项目一段时间,但现在我已经回到这个,并一直在测试Wolf的解决方案。代码似乎可以正常工作,但有一个恼人的问题。我正在做一些自定义按钮,用户可以更改在ArcGIS Pro中显示的列。在代码中,我使用了FieldDescription。IsVisible属性来改变这一点。我现在的问题是,如果表窗口是打开的,我改变IsVisible为false为任何给定的列,然后窗口会自动刷新(列被删除的视图)。但是,当将IsVisible属性更改为True时,不会自动刷新,列也不会重新出现。如果我在字段视图中查看可见复选框是根据我在按钮实现中的更改设置的。因此,它只是表窗口的更新是坏的(仅对列是可见的),我可以补充说,我已经尝试在不显示可见列的情况下对表窗口进行手动刷新(窗口按钮上的刷新图标)。 This does not solve the problem. But if I completely close the table window an reopen it all columns are shown correctly. Could this be a bug? Or do you have any other suggestions? Best regards
...查看更多
09-07-202201:14我
|
0
|
0
|
227
|
在线状态 |
离线
|
最后到访日期 |
12-23-202206:41点
|