ArcEngine开发遇到的问题(转)】的更多相关文章

Arcengine 开发,当图层含有Z值时,新增的feature没有Z值就会 出现“The Geometry has no z-value”的错误.意思很明显,新增的geometry没有Z值. 此时按照常规想法,取出geometry的每个点,分别设置Z=0,理论可行,但实际调试过程中依然报“The Geometry has no z-value”. 可用解决方案如下: IGeometry geometry = feature.ShapeCopy; IZAware zAware = (IZAwar…
from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地方在实例化一个对象的时候. 比如: ISpatialReference a = new UnknownCoordinateSystemClass(); _hookHelper = new HookHelperClass(); 等等. 解决办法 选中实例化的类所在的程序集,如UnknownCoordi…
ArcEngine开发遇到的问题 https://blog.csdn.net/u013751758/article/category/6971559 转载 2018年02月11日 17:28:11 16 arcengine创建shp:http://127.0.0.1:47873/help/1-116/?method=page&id=eaglrfSnippetsCreateFeatureClass&product=vs&productversion=100&locale=en…
转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用: 第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine的产品. 第二部分:ArcEngine9.2的新特性及变化.(续)--类对比及变化.(续)--(代码转换插件).(续)--ArcEngine新命令,工具.菜单和面板 第三部分:使用 ArcGIS Engine开发应用程序(自定义或嵌入) 第四部分:开发Engine 应用程序的基本原理.(续).(续)…
一直想开发一个软件取代ArcGIS Server,该软件使用ArcEngine开发,以Windows Service形式发布,部署在服务端上,解决wmts地图服务发布和空间查询的问题,经过不断的研究.知识积累和测试,已经实现,现将思路整理如下: 首先,Arcgis server优点和缺点就不说了,我要实现的是一个小型的gis server,这个server将使用ae开发,所以只需在服务器上安装AE Runtime即可.软件的功能主要包括以下两点: 1.将mxd文档直接发布成wmts服务 2.前端…
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=25575&page=1&extra= 使用ArcGIS Engine 开发自定义GIS应用: 第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine的产品.第二部分:ArcEngine9.2的新特性及变化.(续)--类对比及变化.(续)--(代码转换插件).(续)--ArcEngine新命令,工具.菜单和面板第三部分:使用 ArcGIS E…
背景: 最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始.保存.回滚编辑的入口内.通俗点说,就是只有当整个系统开始编辑之后才能激发我自己新增的这个模块,然后在这个模块儿内开始对数据进行编辑操作.在这个过程中碰到了这两个概念的使用问题,经过查找定义与实际测试,将二者区别总结如下: 结论: 这两方法都是属于IWorkspaceEdit接口下的方法 StartEditing(bool…
一.AE 向已存在的要素类中添加字段 链接:  AE 向已存在的要素类中添加字段 在向已存在的要素类中添加字段的时候,需要用到ICLASS接口.于是,进一步的调整代码如下,问题得以解决 static void AddFiled(IFeatureClass pFC,string name){ DeleteFile(pFC, name); IFields pFields = pFC.Fields; IClass pClass = pFC as IClass; IFieldsEdit pFieldsE…
使用 IFeatureWorkspace.CreateFeatureClass() 方法,出现异常:无当前记录 百度/谷歌没有找到合适的解决之道. 而是用IFeatureWorkspace.CreateTable()方法却正常. 要素工作空间为AccessWorkspaceClass(), 原因:不明 解决方法:此段代码直接在Personal Geodatabase中新建要素类,后来改为FileGeoDatabase中新建,出现的异常提示 与空间参考相关. 后来新建FeatureDataset,…
IElement pEle = pLineEle as IElement; pEle.Geometry = pLn; pLn为一个ILine对象,想当然的以为它是IGeometry对象,可以赋值,结果爆出异常值不在预期范围内. 解决方法是将ILine转换为IPolyline对象,涉及到一些Geometry的基本操作.贴出一些可用的绘制元素的代码 #region 获取RgbColor /// <summary> /// 获取RgbColor颜色对象 /// </summary> //…
if(pFeature!=null) { IPoint pnt = pFeature.Shape as IPoint; pntArray.Add(pnt); } 调试是pntArray.Add(pnt)显示 尝试读取或写入受保护的内存.这通常指示其他内存已损坏.,网上的资料说是COM对象在循环中没有来得及释放造成的. 因为是在循环中,以为是pFeature没有释放造成的,所以就释放了一下,结果还是这个问题. 后来仔细找,发现pFeature是Polygon类型的,当初想当然的以为可以将Polyg…
属性查询 IQueryDef 首先这个接口不能直接创建,可以由 IFeatureWorkspace 接口的CreateQueryDef创建. 这个接口有两个属性必须设置(帮助文档是这样说明的,但是实际使用中如果只是用 Tables 属性还是可以的),首先是 Tabels ,改属性是查询表的名称,如果有多个,则由英文逗号隔开.第二个是 WhereClause 属性,表示SQL语句. 此接口只能在 ArcSDE.个人.文件数据库中使用.查询时使用的是 Evaluate 方法 IQueryFilter…
这篇文章给出实现属性表功能的具体步骤,之后再对这些步骤中的代码进行分析. 环境准备 拖动TOCControl.MapControl控件到Form窗体上,然后拖动ContextMenuStrip控件至TOCControl上. TOCControl控件的OnMouseDown事件 如果要使用属性表功能,首先应该保证鼠标点击在TOCControl上的图层,其次应该保证是使用鼠标右键点击的.实现这些判断的代码如下: 这里的TOCControl.HitTest() 方法将鼠标点击位置的X,Y,元素类型,地…
思路 根据点坐标创建Shapefile文件大致思路是这样的: (1)创建表的工作空间,通过 IField.IFieldsEdit.IField 等接口创建属性字段,添加到要素集中. (2)根据获取点的坐标信息为属性字段赋值,进而得到图层的要素集 必要元素 将创建 Shapefile 文件代码封装成方法如下,这里说明一下创建一 个 Shapefile 文件至少需要配置的元素: (1)首先,当我们创建一个shp文件时,ArcMap会自动生成如下字段: 其中shp表示几何字段,我们需要设置 IFile…
加载数据思路 在Engine中加载各种各样的数据都是通过这样的格式 IWorkspaceFactory pWorkspace = new IWorkspaceFactory(); IWorkspace pWorkspace = pWorkspace.OpenFromFile(string path, int hWnd); pWorkspace as ... //转换成相应的工作空间 pWorkspace.OpenDataset() //打开数据 一般的数据通过这样的方式都是可以打开的,但是,打开…
在GIS数据处理中,数据量大是一个非常伤脑筋的问题.最近,在写一个CAD注记转Shapefile文件时,又遇到这个问题. 曾经处理一次数据,达130万个点,即测试区域内的栅格转成点全部处理,程序是写好了,但速度之慢啊,关键问题是处理到一半报奇怪的错误,最后只好将数据分成6份,去实验室开了6台机子来分别处理,最后合成在一起.经历过这件事后,我就去请教老师,他们在用程序处理GIS大数据时(特别是当数据带有空间信息),怎么来解决类似的问题?他总结了两方面:一是硬件上,配置要高,对于特别大的数据考虑使用…
E_GEOMETRY_AMBIGUOUSPARTTYPE - Static variable in interface com.esri.arcgis.geometry.esriGeometryError (0x8004024c) The operation would result in the creation of a new part, but the type of part to be created was ambiguous. E_GEOMETRY_AUTHORITY_TOO_L…
在网上百度一下有关AE鹰眼实现的代码,基本是一样的,可问题是好多代码自己运行起来鹰眼却总是加不进地图.住视图axMapControl1.OnMapReplaced(),axMapControl1.OnExtentUpdated(),axMapControl2.OnMouseDown(),axMapControl2.OnMouseMove()在这几个事件绑定的委托方法里写代码,能够实现鹰眼所必须的功能.问题看似简单,代码也不难理解,可往往别人的代码到我们这里却总是会出现很多bug,问题是什么,我现…
之前大篇文章提到,ESRI说AE10.0以后已经不支持WebService的发布,经过一段时间的测试,发现目前10.2.2版本开始的WCF服务都可以正常发布,且运行正常. 先说一下之前遇到的问题,本机测试和发布都没有任何问题,一到WINDOWS SERVER上发布,遇到AE数据编辑就会报错,错误都是在pFeatureCursor.Update或Insert时发生,翻遍了百度和谷歌相关的贴子,都没有找到解决问题的答案,现将我的解决方案贴出来. 1.新建一个应用程序池,由于AE是32位程序,应用程序…
原发表于ESRI中国社区,转过来.我的社区帐号:jhlong http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=122097 ----------------------------------------我是分割线,下面才是正文--------------------------------------------------------   1.说明6周年征文 似乎就我这一篇ArcEngine开发的,搞开发的很少么?还是搞开发的都不善于言语…
开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 背景:ArcEngine开发的分析功能同时在dotNet(CS)和Java(BS)中使用,在CS程序中运行正常,但是在BS运行下经常无法获得分析数据,因此想通过写一个WebService的方式进行解决. 因为之前一直做成CS的东西,很少接触BS内容,完全从0写起,因此写起来遇到了不少问题.比较费事. 下面记录下我写的…
原生64位程序 我们现在使用的操作系统多为64位系统,其中大部分用的还是32位的软件. 64位软件优点是:可以进行更大范围的整数运算:可以支持更大的内存:除做科学运算的时候取得更好的性能外,不能提高其他性能.要实现64位计算需要的条件:64位的处理器,64位的操作系统以及64位的应用软件. ArcGIS Pro版本开始,也是提供了原生64位的. 0x80040154 在7.0的官方文档中说了"TerraExplorer 7.0重新 设计为原生的 64位应用 ,使其 可以 充分调用可内存 以应对…
由于超图的相关资源比较少,可参考官方提供的<SuperMap iDesktop 9D安装指南>和<SuperMap iObjects .NET 9D安装指南>完成应用软件和开发环境的部署. 许可安装 无论是iDesktop.还是iObjects .NET或者是基于超图平台开发的自定义应用程序,其许可都使用SuperMap_LicenseCenter集中管理. 如果是试用,可以不用下载和使用它:如果需要查看剩下试用时间和重新申请试用或正式许可,则需要使用它. 桌面安装 桌面版本分32…
先看一下GeoDatabase核心结构模型图: 1  工作空间工厂WorkspaceFactory对象 WorkspaceFactory是GeoDatabase的入口,是一个抽象类,拥有很多子类,例如SdeWorkspaceFactory, AccessWorkspaceFactory, ShapfileWorkspaceFactory  CadWorkspaceFactory等 IWorkspaceFactory接口定义了所有工作空间对象的一般属性和方法    public IWorkspac…
一.ArcEngine简介ArcEngine被定位为一个嵌入式的产品,它并非面向最终用户,而是一个面向开发者的产品.对于繁冗的GIS开发工作而言,理想的解决方案是一个基于组件的实用的开发框架,且该框架允许解决方案提供商或机构内部开发人员快速构建行业专用GIS应用软件.一个GIS开发框架应提供应用软件所需的必要的空间分析功能,并允许软件开发人员集中精力构建软件的特定逻辑.ArcEngine就是这样一个GIS框架,它是为响应ESRI用户的请求而创建的,可以把丰富的ArcGIS技术按产品进行分类,并将…
需求: 在ArcGIS项目中,大型的数据库都是使用ArcSDE进行连接管理.使用的数据版本(Version)都是默认版本(sde.default).这样多个人员在编辑的过程中就直接编辑的是默认版本数据.只要能够连接数据库就可以对默认版本进行随意的更改.一旦编辑保存到数据库之后就无法更改,除非有数据库备份,使数据编辑变得不灵活. 解决方案: ArcGIS是有数据版本就出来了.数据库版本可以以默认版本(sde.default)为模板,创建多个子版本(Version).然后用户编辑子版本的时候对父版本…
1.ArcEngine开发 二次开发的常用方式,开发提供接口齐全,功能强大,比较成熟.但是,开发的软件使用需要指定版本的运行环境才能运行. 2.Addin开发 二次开发与ArcMap嵌入,开发方便,可以跨部分ArcGIS版本,但文档较少. 3.ArcMap工具箱建模开发 工具建模可视化,可以批处理. 4.ArcPy开发 需要一定的python基础,使用自带的开发工具即可开发.…
前言 本文主要介绍ArcGis的ArcEngine开发,学习时,我们需要放下心里障碍,那就是Gis开发只是普通的软件开发,并不需要专业的GIS知识,就是非常普通的,调用相关的C++开发的COM组件. 开发环境:VS2017. ArcEngine版本:10.1. 基础学习 正式使用ArcGis之前,需要先学习ArcGis一些基础概念. 工作空间(IWorkspace): 存储ArcGis数据的对象,他可以从多种数据库中读取ArcGis数据,如oracle,mdb等等. 普通表(ITable): 跟…
概要:在使用ArcEngine开发中,给ToolbarControl添加按钮形式的命令项相信大家都很熟悉了,因为网上的例子很多.但这种使用click调用功能的方式只能满足大部分用户在体验方面的需求,除此之外用户很可能要求你在工具条中增加类似文本框,单选框.选择面板,combobox等windows控件,今天有个同事问我这个问题就在这里做一个实例.供大家参考. 具体实现: 1 知识整备 (1 )其实要实现这个效果很简单,只要大家了解Arcgis中的IToolControl接口的使用方法,就不难实现…
ArcEngine开发查询时出现异常 摘自:http://shaopengluo.blog.163.com/blog/static/1314464152011112144855776/ 检查发现是QueryFilter.WhereClause语句在查询shapefile格式的图层出现了问题,试验在查询gdb格式的图层不会报错.打开ArcGIS比较了两种格式的属性查询存在以下的区别: 1.shapefile的字段名用双引号如:"fieldName"而GDB的采用[fieldName]格式…