摘要: 用存储过程创建数据表:创建时注意必须添加authid current_user,如果创建的表已存在,存储过程继续执行,但如不不加此关键语句,存储过程将出现异常,这个语句相当于赋权限。创建语句如下:create or replaceprocedure sp_create_mnl(i_id varchar2) authid current_user as /*********************************名称:sp_create_mnl功能描述:创建模拟量历史数据存储表修订记录:版本号 编辑时间 编辑人 修改描述1.0.0 2012-9-20 wylaok ... 阅读全文
posted @ 2012-09-19 16:25 心平_气和 阅读(15057) 评论(0) 推荐(0) 编辑
摘要: 实现过程:创建或打开一个FileGDB-->创建或打开一个栅格目录-->选择一个文件夹,把此文件夹下的栅格数据导入栅格目录:下面为核心代码using System;using System.IO;using ESRI.ArcGIS.DataSourcesGDB;using ESRI.ArcGIS.DataSourcesRaster;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.DataManagementTools;using ESRI.ArcGIS.Geoprocessor;u 阅读全文
posted @ 2012-07-20 10:13 心平_气和 阅读(4992) 评论(0) 推荐(0) 编辑
摘要: 做GIS二次开发,不论用什么语言或二次开发工具,只要对图形的操作,都会涉及到空间参考的问题,至于空间参考的基础知识我就不再强调了!在做栅格裁剪的时候,也会涉及到空间参考的问题,主要有一下几个地方,有栅格图的空间参考、矢量图的空间参考、剪裁后栅格图的空间参考,最好这三个参考是一致的,如果不一致就要让他一致,以下为例子代码:pRaster为原栅格图,pPolygon为矢量图的上的某个面要素的最大外环。以原栅格图为参考基准。重点在于投影空间参考! //多边形裁剪 、矩形裁剪 public void CutByPolygon(ILayer layer, IGeometry clip... 阅读全文
posted @ 2012-07-14 09:45 心平_气和 阅读(2477) 评论(1) 推荐(1) 编辑
摘要: 对于很多应用功能,有时需要获取指定目录下的指定后缀名文件以实现批处理。以下为事例代码:取到的文件放入动态数组中……/// <summary> /// 获取某一扩展名的文件集合 /// </summary> /// <param name="dictoryName">目录名</param> /// <param name="fiterName">扩展名</param> /// <returns>文件名集合</returns> public List<str 阅读全文
posted @ 2012-07-06 14:51 心平_气和 阅读(2552) 评论(0) 推荐(0) 编辑
摘要: 在AE二次开发过程中很多时候需要克隆对象,如IMap ,ILayer,IDomain,IElement等等,如果简单的用等于是行不通的,如果每一个细节的赋值,又容易遗漏很多东西。所以就提供了深度克隆的方法:以IDomain深度克隆为例: IObjectCopy pObjectCopy = new ObjectCopyClass(); object preDomain = pObjectCopy.Copy(perDomain);//对象的深度复制 IDomain acessDomain = preDomain as IDomain;这样就会把值域的名称、描述及代码等细节都会一个不落的克隆过去。. 阅读全文
posted @ 2012-07-05 21:39 心平_气和 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: FeatureLayer偏重于显示,FeatureClass偏重于操作。Feature在对要素类进行操作时,最好直接用FeatureClass作为参数传入类中。 阅读全文
posted @ 2012-07-03 16:17 心平_气和 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 用ArcEngine做二次开发,做查询并对查询到的数据做修改是再正常不过的事情了!最近也做了一点这方面的学习。在查询过程中,主要用到,Search、Select、Update等方法。以下对几种方法做简要的介绍:1、 用ISelectionSet接口查询,返回IDs,再根据IDs获取要素,我现在用的是这种方法,因为我频繁的查数据,如果用游标就会产生大量的游标,很容易出现如“不能打开其他表了”或“调用COM组件错误”等错误提示。 IQueryFilter pQueryFilter = new QueryFilterClass(); pQueryFilter.WhereClause = " 阅读全文
posted @ 2012-07-03 10:41 心平_气和 阅读(1429) 评论(0) 推荐(0) 编辑
摘要: 最近测试了一个AE+C#二次开发的程序,做过AE二次开发的都知道,开发主要是基于图形的,也就是说基于ArcGIS的多种图形格式,如最普遍的点、线、面图层,一般做某些功能也是以图层为单元的!当然也非为矢量和栅格了!这就要求我们在编码的过程中注意格式的判断和筛选。如果不加严格的筛选控制,将出现大量的bug。下面举几个例子: 1)格式筛选,矢量和栅格作为GIS行业的两大格式,不同的GIS功能针对不同的格式。如做影像拼接就不可以加载矢量图。如果做拓扑检查就不可以用栅格图。 2)要素类型筛选,对于某些功能,特别是针对某个行业的GIS功能,对要素类型是有要求的,比如林业,一般是对面进行处理,这就要求程序员 阅读全文
posted @ 2012-06-11 08:38 心平_气和 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 最近做了一下Excel相关的程序,学到了不少东西,在此感谢博客园中无私奉献的园友们。很多资料和信息都是从博客园获取的!1、完美关闭Excel进程思路:只把EXCEL进程kill是不够的,还必须把全局变量中的所有与Excel操作相关的excel变量赋值为null才可以!代码如下:View Code 1 private void QuitExcelApp() 2 { 3 if (excelApp != null)//excelApp全局变量 4 { 5 //关闭EXCEl进程,只把EXCEL进程kill是不够的, 6 ... 阅读全文
posted @ 2012-05-31 10:18 心平_气和 阅读(2221) 评论(0) 推荐(1) 编辑
摘要: 最近正在做一些简单的测试工作,很不专业的那种,就是最简单的功能测试,测试有没有bug、界面操作方式怎么样!忘了说了,我测试的是一个GIS专业软件,针对某个特定领域的,用的是AE+C#开发出来的!下面谈谈我这几天的收获吧。 1、系统定位。对于一个应用GIS系统,必然是针对某个领域的,这个领域一定有其独有的特点,有其最在乎最常用的功能。所以,一定要对这个领域这个行业有一个全面的了解,说的极端点就是这个系统只能针对这个领域,其他领域就用不成!千万不要做出来和ArcGIS似的,样样都行,那就意味着什么都干不成。 2、操作紧跟需求。“操作”指的是用一个功能,完成一个工作的流。对于某个领域来说,一个工作. 阅读全文
posted @ 2012-05-29 13:20 心平_气和 阅读(1881) 评论(0) 推荐(0) 编辑
摘要: 接口对于面向对象编程语言是一个特色。对于很多初学者来说,对接口的理解很浅,就像我刚接触接口的时候一样。我刚开始认为接口就没有存在的必要,因为接口定义的方法必须由类来实现才可以用,感觉什么都用类解决就好呀!但随着学习和工作的编程经历,个人认为接口很有用处。有以下几点:1、C#的类只能继承一个类,却可以继承n个接口。2、接口可以对一系列动作(方法)进行分装,极端的例子是可以把所有的方法都放到一个类里,把方法按类型以接口的形式分装即可。3、当你把类程序编译成.dll时,类是可以看到里面的实现的,但接口只能看到定义的方法和成员。4、但也要注意,当把程序发布后,最好就不要修改接口,可以定义升级接口,如. 阅读全文
posted @ 2012-05-16 12:42 心平_气和 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 原文出处:http://www.cnblogs.com/limaoshengcpp/archive/2012/03/20/2407899.htmlC#获取当前路径的方法如下:1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。2. System.Environment.CurrentDirectory-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。3. System.IO.Directory.GetCurrentDirectory()-获取应用程序的当前工作目录。这个不一定是 阅读全文
posted @ 2012-05-16 08:33 心平_气和 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 以前开发的时候一直用VS2008 ,帮助就用msdn,感觉挺好的,不知道VS2010的msdn好用不!今天安装了一下,感觉没有VS2008的msdn好用。1:就包含在光盘里面,是ProductDocumentation文件夹,原来叫msdnlibrary,现在叫helplibrary,基于web的,helplibrary无法独立安装,必须要先安装vs2010,2:安装好后打开,所有程序->vs2010->vs2010tools->manage help setting,3:选择install content from disk,4:然后选择光盘里面的ProductDocume 阅读全文
posted @ 2012-05-07 10:34 心平_气和 阅读(2232) 评论(0) 推荐(0) 编辑
摘要: 在做AE开发时,有的功能需要获取某个图层选择的要素,以下是部分代码(非原创):注:对于一个文档map做处理时,一定要注意ILayer是矢量IFeatureLayer或栅格IRasterLayer,两者是有很大不同的!ILayer pLayer;IFeatureLayer pFeatureLayer;IQueryFilter queryFilter = new QueryFilterClass();IFeatureSelection pFeatSelection = pFeatureLayer as IFeatureSelection;ISelectionSet selectionSet = . 阅读全文
posted @ 2012-05-02 19:16 心平_气和 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 现在有个shp,里面只有SID这个关键字段,其它属性都在excel里面,通过关键字匹配然后生成新shp。步骤如下:1、用ArcCatalog在shape里建字段(字段最好与EXCEl表中的字段名一致,类型必须一致)。2、在ArcMap中打开shape文件,根据匹配字段建立连接关系。可以先打开编辑状态,因为如果数据量很大,进入编辑状态很慢!3、编辑状态下打开要更新的shape文件属性表。在要更新的字段上点击右键,选择计算字段。然后再选择对应的Excel字段就更新上去了! 这是用ArcGIS自带的软件做的,如果要用AE编程也可以实现。思路大体也是这样的!注:此思路是与同学讨论整理出来!在此感谢我的 阅读全文
posted @ 2012-04-17 09:38 心平_气和 阅读(3857) 评论(0) 推荐(0) 编辑