Questions tagged «c#»

C#是.NET编程语言。

9
如何实现ESRI REST API?
ESRI宣布他们将发布ArcGIS REST API作为开放技术。我有一个使用IIS7运行Sql Server 2008的ISP。 有谁知道如何演示如何使用WCF编写C#来公开符合特定规范(理想情况下为ESRI)的空间表? 有人知道ESRI的规格在哪里吗?

2
使用C#的Gdal / Ogr的API文档
我想在我的Web C#应用程序中将投影分配给shapefile,为此我正在使用Gdal / OGR / OSR C#绑定并添加osr_csharp.dll和ogr_csharp.dll引用。但是我在编写将投影分配给shapefile的代码时遇到了一些困难。我想知道是否有任何API文档可以帮助我理解这些库的类/方法。或者,如果有人有一些代码可以将投影分配给shapefile,那么对我来说将是很大的帮助。

3
解决ArcObjects的IFeatureClass.Search(仅在具有直接连接的SDE上)中的内存泄漏?
ESRI支持人员说,他们已重现了该问题,并已打开一个错误报告(NIM070156)。 我已确定,有内存泄漏(在非托管堆内存)时发生在工具我的.NET / C#ArcMap中附加执行空间查询(返回ICursor从IFeatureClass.Search与ISpatialFilter查询过滤器)。不再需要所有COM对象时,它们将被释放(使用Marshal.FinalReleaseCOMObject)。 为了确定这一点,我首先建立了一个带有ArcMap.exe的“专用字节”,“虚拟字节”和“工作集”计数器的PerfMon会话,并注意到,随着执行查询的工具的每次使用,这三者均稳步增加(每次迭代大约增加 500KB) 。至关重要的是,只有在使用直接连接(ST_Geometry存储,Oracle 11g客户端和服务器)对SDE上的要素类执行此操作时,才会发生这种情况。使用文件地理数据库以及连接到使用应用程序连接的较旧SDE实例时,计数器保持不变。 然后,我使用LeakDiag和LDGrapher(在此博客文章中提供了一些指导)并三次登录Windows Heap Allocator:第一次加载ArcMap并选择工具对其进行初始化之后,运行了数十次该工具,然后运行了它几十次。 以下是LDGrapher的默认视图(总大小)中显示的结果: 这是红线的调用堆栈: 如您所见SgsShapeFindRelation2,sg.dll中的功能似乎是导致内存泄漏的原因。 据我了解,sg.dll是ArcObjects使用的核心几何库,SgsShapeFindRelation2大概是在应用空间过滤器的地方。 在我做其他事情之前,我只是想看看是否有人遇到了这个问题(或类似的问题),以及他们是否有能力解决这个问题。另外,仅通过直接连接发生这种情况的原因可能是什么?这听起来像是ArcObjects中的错误,配置问题还是编程问题? 这是产生此行为的方法的最低工作版本: private string GetValueAtPoint(IPoint pPoint, IFeatureClass pFeatureClass, string pFieldName) { string results = ""; ISpatialFilter pSpatialFilter = null; ICursor pCursor = null; IRow pRow = null; try { pSpatialFilter = new SpatialFilterClass(); pSpatialFilter.Geometry = …

5
如何以编程方式获取ArcMap使用的“ Python.exe”的路径
我正在使用C#中的ArcMap加载项。从C#代码中,我已经执行了一些Python脚本。现在,要运行这些脚本,我已对python路径进行了硬编码。但这不是便携式的。因此,我想从代码中获取Python可执行文件的路径并使用它。 题: 如何从C#代码获取ArcMap使用的Python可执行文件的路径? 编辑: 根据您的建议,现在我正在使用“路径环境”来获取Python路径。 //get python path from environtment variable string GetPythonPath() { IDictionary environmentVariables = Environment.GetEnvironmentVariables(); string pathVariable = environmentVariables["Path"] as string; if (pathVariable != null) { string[] allPaths = pathVariable.Split(';'); foreach (var path in allPaths) { string pythonPathFromEnv = path + "\\python.exe"; if (File.Exists(pythonPathFromEnv)) return pythonPathFromEnv; } …
16 arcgis-10.0  python  c# 

1
理解为什么ArcPy成本路径分析工具比ArcObjects更快?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 尽管我使用python创建地理处理脚本/服务,但给我的印象是,使用ArcObjects进行等效操作将具有更好的性能。 我已经发布了ArcGIS Server GP服务-RasterIO.dll崩溃了,ArcSOC.exe和ArcGIS Geoprocessing Script在桌面上运行良好,但崩溃了,成为Geoprocessing Service?在过去的两天内,有关获取使用Spatial Analyst工具用作地理处理服务的地理处理脚本的信息。我的截止日期快到了,所以我决定走SOE路线以实现所需的功能。 获得在ArcObjects的成本路径分析是相对直接使用.NET ESRI.ArcGIS.SpatialAnalyst.RasterDistanceOpClass,特别是CostDistanceFull()和CostPath()方法。 有关我的工作方式的一些代码片段: 蟒蛇 # Get Cost Path Origin and Destination Points inputPointsShp = 'D:/RasterStuff/test_points.shp' arcpy.MakeFeatureLayer_management(inputPointsShp,"origin",' "TYPE" = \'ORIGIN\' ') arcpy.MakeFeatureLayer_management(inputPointsShp,"destination",' "TYPE" = \'DESTINATION\' ') # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute CostDistance outCostDistance …

1
如何在ArcMap / C#中从Windows剪贴板获取选定的要素/几何?
我在ArcMap 10中有一个自定义工具。工作流如下: 使用“按矩形选择要素”工具在图层中选择要素 使用STRG + c将功能部件复制到剪贴板 选择自定义工具 该工具检查剪贴板。如果在剪贴板中找到复制的功能,则工作流程会更改 我在http://kiwigis.blogspot.com/2011/07/how-to-create-drop-target-for-layers-in.html上找到了一个示例,其中使用拖放实现了类似的内容。 按照并修改示例,并尝试使用STRG + c将ArcMap中的TOC中的图层复制到剪贴板对我来说是可行的: //Get the Data from the Clipboard IDataObject clipBoardDataObject = Clipboard.GetDataObject(); //The format of the object data is "ESRI Layers" (this can be checked using clipBoardDataObject.GetFormats();) MemoryStream geomStream = clipBoardDataObject.GetData("ESRI Layers") as MemoryStream; byte[] bytes = geomStream.ToArray(); IMemoryBlobStreamVariant memoryBlobStreamVariant …

6
如何遍历连续栅格中的每个像元?
有关更多详细信息,请参见此链接。 问题: 我想遍历一个连续的栅格(一个没有属性表的栅格),逐个像元,并获取像元的值。我想采用这些值并对它们运行条件,模拟下面详细介绍的地图代数步骤,而无需实际使用栅格计算器。 根据下面的评论请求,我添加了详细信息,为问题提供了背景,并证明有必要在下面称为“所需的分析:”的部分中实施这样的方法。 下面提出的分析虽然通过提供背景与我的问题相关,但无需在答案中进行。问题的范围仅涉及对连续栅格进行迭代以获取/设置像元值。 分析需要: 如果满足以下任一条件,则将输出单元格的值设置为1。如果不满足任何条件,则仅将输出单元格的值设置为0。 条件1:如果单元格值大于顶部和底部单元格,则给出值1: Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0) 内核文件如下所示: 3 3 0 1 0 0 0 0 0 1 0 条件2:如果单元格值大于左右单元格,则给定值1: Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0) 内核文件如下所示: 3 3 0 0 0 1 0 1 0 0 0 条件3:如果单元格的值大于左上角和右下角的单元格,则将值设为1: Con("raster" > …
13 python  raster  arcobjects  gdal  c# 

8
ArcObjects资源[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 使用ArcObjects进行C#开发的最佳书籍/网站是什么? 在ArcGIS资源中心是非常有帮助的,但我试图找到更多的例子来源。
13 arcobjects  c# 

12
学习.NET for ArcGIS(主要是台式机)使用吗?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我具有基本的编程技能(我编写了简单的vba python和lisp脚本,并且很久以前就读过Java课程),但是在我看来(由ESRI出版物判断)并没有逃脱学习.NET的需要。未来在GIS就业市场中的相关性(甚至是作为分析师)。 我已经完成了基本的C#课程,并且可以(遗憾地)编写非常差的程序,但是我不知道如何将C#知识与arcgis的实际编程联系起来。 1)我知道差异不大,但是ArcGIS是否使用.NET或C#? 2)我知道增加我在.NET中经验的最好方法是编写越来越多的程序,但是有什么好的.NET编程书籍或课程可以学到技术吗? 3)您认为学习在.NET for ArcGIS中编程的最佳方法是什么?有没有有用的书籍或网站? 非常感谢您对ArcGIS 10的评论(并将保存以供以后使用),但是如果您能给我一些有关ArcGIS 9.3.1的建议,那将是非常出色的(我发现自己处于非常任性的位置,而Esri和全世界的注意力都集中在ArcGIS 10.0上(包括当地的Esri代表),该国几乎没有人从9.3.1升级或有计划这样做,并且个人在寻求9.3.1适当答案时遇到问题)。

5
从表单激活自定义ITool而不将其添加到ArcMap AddIn工具栏?
我正在开发ArcMap 10.0的外接程序,该外接程序将工具栏添加到ArcMap。OpenModelessDialogCommand该工具栏上的一个命令()按钮打开一个无模式的WinForms对话框,MyTool可以从中激活一个工具(),以便例如在地图上选择一个要素。 我的Config.esriaddinx包含以下命令和工具栏声明: <Commands> <!-- this is the command that opens the modeless WinForms form, from where MyTool is available: --> <Button id="OpenModelessFormCommand" ... /> <!-- MyTool is not directly referenced in any toolbar defined in this file: --> <Tool id="MyTool" class="MyTool" ... /> </Commands> <Toolbars> <Toolbar ...> <Items> <Button …

4
使用C#读取shapefile?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我是ArcGIS的新手,正在尝试一些方法。 我正在尝试使用C#读取shapefile(作为输入提供) 我想生成一个包含基础元数据信息的PDF文件(类似于“识别”工具)吗?
11 shapefile  c# 

1
使用C#实现ArcGIS自定义功能?
是否可以在.NET中实现自定义功能? 如果是这样,怎么办? 我怀疑问题是可以通过.NET 进行COM聚合,但是我在那上找不到任何东西... 有谁知道是否可以创建一个 运行 支持COM_INTERFACE_ENTRY_AGGREGATE_BLIND的.NET类的COM可调用包装器?
11 arcobjects  c#  .net 


2
ArcGIS 10加载项:顶级异常处理
我正在使用的ArcGIS 10插件非常简单-只是一个工具控件和一个可停靠窗口。我正在处理预计会在源头发生的特定异常,并抛出其他所有异常,但是在外接程序框架中处理那些意外异常的最佳实践是什么? 我目前只是在做一个catch (System.Exception ex),并在没有可用我可以处理的更高级方法的每个方法中将其显示在MessageBox中,但这似乎不是最佳实践(当然,FxCop在抱怨关于它)。 ArcGIS 10附加框架中是否有任何功能可用于关联顶级异常处理程序,例如Application.ThreadException或AppDomain.UnhandledException事件? 看到加载项只是类库,而不是无法访问基础应用程序的启动代码的应用程序(从我的收集中,这些事件必须在启动过程的早期就进行挂钩),我的猜测不是,但我认为我想问一下是否有任何专家对外接程序中应如何处理“意外”异常有任何建议。

1
将经度/纬度转换为地图上的像素
我从这里有一张地图。我希望能够简单地将任意lon / lat对转换为地图上的像素(还可以进行反向转换)。这些地图带有.tfw文件和投影信息,这里是: 0.02222222222222 0.00000000000000 0.00000000000000 -0.02222222222222 -180.00000000000000 90.00000000000000 和投影信息: Projection: Plate Carree aka Geographic or "LatLong" Earth ellipsoid: Sphere, radius 6370997 m Datum: WGS84 Extent: 180 West to 180 East, 90 North to 90 South Size: 16,200 height samples wide x 8,100 high Resolution: 2.47 km/pixel 我对制图相关的知识完全陌生,据我所知,我应该首先进行从WGS84(单双)到地理投影的转换(不是吗?)。在我看来,它们实际上是相同的,但是上面的投影信息中的球体半径是6370997,并且与我在Plate Carree投影中发现的spacespacereference.com页面不同。无论如何,我发现DotSpatial.Projections库可以使用以下代码为我完成此操作: var …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.