代码改变世界

随笔分类 - GIS技术

ArcObjects拾遗之三——创建点要素

2012-05-08 19:18 by 贼寇在何方, 1657 阅读, 收藏, 编辑
摘要:比起之前创建要素类的繁杂步骤,在已有要素类的情况下创建要素,就相对简单多了的: // 创建点要素 static void CreateFeature(IFeatureClass featureClass, IPoint point) { var feature = featureClass.CreateFeature(); feature.Shape = point; feature.Store(); } 这个方法简单,但是缺点也很明显:每一次创建要素都要执行一遍Store,对硬盘进行一次写入。这在批量数据写入时劣势相当明显。 所以我们引入一个FeatureBuffer: 阅读全文

ArcObjects拾遗之二——创建Shapefile

2012-05-04 10:18 by 贼寇在何方, 2865 阅读, 收藏, 编辑
摘要:Shapefile(shp)是ESRI开发的一种空间数据格式,一般由后缀为shp(图形数据)、shx(图形索引数据)、dbf(属性数据)、prj(投影信息)等一系列同名的文件构成,用于存储矢量图形数据。其中,shp、shx、dbf三个文件是一个完整的Shapefile数据必须包含的。 阅读全文

ArcObjects拾遗之一——初始化许可

2012-05-03 12:00 by 贼寇在何方, 1807 阅读, 收藏, 编辑
摘要:ArcObjects是ArcGIS的底层API,基于COM技术搭建,所以能够自然地支持C++,VB,.Net在内的多种语言。然而也因为是基于COM的,所以它的API很是难用(相比.Net framework那样的)。虽然我用它来开发也有些时日了,但每次用起来,总能遇到一些烦人的小问题。既然这样,那就把他们记录下来,和大家一起分享好了。 阅读全文

通过ArcSDE导入栅格数据集不间断出错的问题

2012-01-11 14:25 by 贼寇在何方, 659 阅读, 收藏, 编辑
摘要:这个错误真的再也不想提了,太恶心了··· 用ArcObjects API把本地的Tiff通过SDE导入到另一台机器上的Oracle中,常常会报各种各样的COMException,有说'No Spatial Reference Exists',也有'Net I/O Error',还有就是未知错误··· 更恶心的是,未必每次都会报错。且每次报错的时机也不一样: 有时候导了五六个Tiff还是正常的,有时候导了一两个就挂了,有时候甚至一个都没导完就挂了··· 阅读全文

ArcGIS Engine中初始化许可常见问题归纳(转)

2012-01-04 11:03 by 贼寇在何方, 564 阅读, 收藏, 编辑
摘要:今儿试着用IRasterWorkspaceEx.CreateRasterCatalog这个方法通过SDE创建栅格目录,不料报了个COMException("The application is not licensed to create or modify schema for this type of data"),解决方法就如下文所示,我就不赘述了。 原帖地址:ArcGIS Engine中初始化许可常见问题归纳 阅读全文

在WCF中调用ArcObjects的一个例子

2011-08-29 10:24 by 贼寇在何方, 1901 阅读, 收藏, 编辑
摘要:在使用ArcGIS Web API开发GIS应用的时候,系统提供的一般服务常常不能满足需要,这时候就需要在服务端调用ArcObjects。 下面就把我就给出一个简单的示例程序,用来读取给定的Personal Geodatabase中要素类的一个列表,并把相关的一些经验分享一下: 阅读全文

ArcGIS10在ADSL直连的环境下无法启动的Bug

2011-07-03 17:18 by 贼寇在何方, 896 阅读, 收藏, 编辑
摘要:系统环境Windows 7 SP1 64位专业版Visual Studio 2010 32位旗舰版ArcGIS 10 桌面版+ArcObject .Net 开发包问题在使用ADSL直连或者VPN的情况下,ArcGIS无法启动:VS2010在添加MapControl控件是出现假死的情况ArcMap启动后一直卡在初始化License解决方法到目前为止没有完善的解决方法,ESRI中文论坛上的帖子也没有看到官方的回应。一些看上去比较靠谱的解决方法,比如绑定License Manager的端口,经尝试证实无效。我的解决办法是,重新接上路由器,保证没有连接在网络连接列表的“拨号和VPN”中, 一切恢复正常 阅读全文

ArcGIS Engine升级记录,从9.3到10.0

2011-04-20 22:33 by 贼寇在何方, 1828 阅读, 收藏, 编辑
摘要:最近要做毕业设计,准备使用VS2010和ArcGIS10开发,之前做的系统还有一些利用价值,便花了点时间把原来的系统升级了下。 升级范围:Visual Studio 2008 -> 2010.Net framework 3.5 -> 4.0ArcGIS Engine 9.3 -> 101. 升级项目用VS2010打开项目,自动提示升级,按完成,以默认配置升级即可2. 更改.Net 版本Project->Properties,在Application选项卡中,把Target framework 改成.Net framework 43. 更新引用把包含ESRI的引用全都删掉 阅读全文

为IEnumDataset实现foreach方式遍历

2011-04-20 14:51 by 贼寇在何方, 1960 阅读, 收藏, 编辑
摘要:和许多其他GIS公司提供的跨语言SDK一样,ESRI的ArcObjects使用COM技术提供跨语言支持对于ArcObjects的.Net SDK,不得不说是相当的垃圾,纯纯的COM API,没有做任何封装比如IEnumDataset这个类型,对其进行迭代,需要这样:IDataset ds = enumDataset.Next();while( ds != null ){ // 执行代码 ds = enumDataset.Next();}因为IEnumDataset是COM当中的类型,没有实现IEnumerator,也就不能够用foreach遍历,更不能享受Linq带来的便利用法。下面开始对IE 阅读全文

从File Geodatabase导入ArcSDE10 for Oracle

2011-04-19 13:23 by 贼寇在何方, 886 阅读, 收藏, 编辑
摘要:安装环境:服务端使用:Windows Server 2008 R2(X64),Oracle 10g(32),ArcSDE10 for Oracle(32)客户端使用:Windows 7 专业版(X64),ArcGIS10 Desktop我需要完成的工作:把File Geodatabase通过SDE导入到服务器上的Oracle我所做的尝试:1.在ArcCatalog中添加空间数据库连接在客户端打开ArcCatalog,在Catalog Tree中找到Database Connections->Add Spatial Database Connection:测试连接,结果失败,提示错误:Fa 阅读全文

ArcGIS管理器无法配置的解决方法

2011-03-30 16:11 by 贼寇在何方, 646 阅读, 收藏, 编辑
摘要:在别人的电脑上安装完ArcGIS10 Desktop以及License Manager以后,发现ArcGIS管理器的选项无法配置:许可管理器的服务器名必须改成localhost,ArcGIS才能运行起来···出现选项全灰状况,一般是安装过程中杀毒软件禁止了修改注册表的请求所致。解决方法:在“运行”中输入“regedit”打开注册表管理器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\License10.0”,把LICENSE_SERVER的值改成@localhost参考链接: 阅读全文

WPF & ArcGIS Engine三维开发入门攻略

2010-12-14 22:55 by 贼寇在何方, 5536 阅读, 收藏, 编辑
摘要:前些日子在做ESRI的开发大赛,从刚开始接触ArcGIS Engine(以下称AE)那会儿“摸着石头过河”那个阶段一路走下来,有了不少心得体会,在此给大家分享下。做得是一个三维的校园地下管线系统,使用的AE的SceneControl组件。传说Scene适合小场景精细模型展示,Globe适合大场景海量数据展示,所以选的前者。界面用的是Dotnetbar for WinForm,但其实WPF更好些,这里我也以WPF为例。我的系统环境:Windows 7 专业版,Visual Studio 2010,ArcGIS Engine 9.31.创建项目创建一个WPF的项目,必须选择.Net framewo 阅读全文