摘要: JPG图片一般不具有坐标信息,当要使用扫描的地形图矢量化或者使用现状规划JPG图和已有DLTB图层进行叠加分析时,必须先为JPG图片配准添加坐标信息。 方法一:JPG中控制点坐标已知 当知道JPG中4个以上控制点的准确坐标时,可以使用ArcMap中的Georeferencing(影像配准)工具条: 1.加载JPG到ArcMap后,点击Georeferencing工具条上的Add Control Points; 2.在图中点击控制点,右击选择Input X and Y,输入XY坐标值; 3.重复步骤2,继续添加控制点; 4.打开工具条上的View Link Table(可以将控制点坐标信息保存. 阅读全文
posted @ 2012-08-14 10:58 St.Dlng 阅读(1713) 评论(0) 推荐(0) 编辑
摘要: 可通过HSSFRow.Cells[index]和HSSFRow.GetCell(index)两种方法获取某行单元格;但是两种方法所获取的结果却很有可能不一致,这种情况发生在有空白单元格时,此时HSSFRow.Cells[index]获取的是非空单元格集合索引的单元格,其内容不为空,而HSSFRow.GetCell(index)获取的是实际创建或存在的单元格,但其内容可以为空。 阅读全文
posted @ 2012-02-17 11:42 St.Dlng 阅读(5815) 评论(0) 推荐(0) 编辑
摘要: 在ArcMap中,实现水平分子式标注的方法是在Label Expression中选中Advanced,输入如下VBA代码:Function FindLabel ( [FieldName1] , [FieldName2] ) FindLabel = [FieldName1] &chr(13)&"———————————"&chr(13)& [FieldName2] End Function或者:Function FindLabel ( [FieldName1] , [FieldName2] ) FindLabel = "<und& 阅读全文
posted @ 2011-12-02 11:15 St.Dlng 阅读(1388) 评论(0) 推荐(0) 编辑
摘要: Visual Studio 2010如期发布了,我怀着迫不及待的心情马上下载了最新的ISO来安装和感受一下。.NET Framework 自从 2002 年发展至今,已经历了好几个版本,1.0, 1.1, 2.0, 3.0, 3.5 等不同的版本更替,.NET Framework 的Redistributable Package也愈来愈大,到了 .NET Framework 3.5 SP1 时已经膨胀到 231MB,除非软件本身就很大,不然对于 .NET 软件的Redistribute是相当不利的,除非客户端本身就有安装 .NET Framework,否则几乎都要夹带一个 .NET Frame 阅读全文
posted @ 2011-11-23 12:08 St.Dlng 阅读(5662) 评论(3) 推荐(3) 编辑
摘要: 我在PetShop4程序中加入了一个业务外观层,然后在业务逻辑层(PetShop.BLL)引用这个程序集,点“生成”,出现以下的错误:“程序集生成失败 -- 引用的程序集没有强名称”,原因是PetShop.BLL是强命名程序集,强命名程序集不能用普通程序集造成的。 那么什么叫强命名程序集呢?我们知道,以前在Windows下开发程序时常会遭遇著名的“DLLHell”问题,即动态链接库的向后兼容问题。微软在.Net产生前曾尝试使用COM组件的方式来解决DLLHell问题,即使用Guid来唯一的标识每一个COM组件。但是,实际上使用COM组件(包括版本升级)也是一件颇为麻烦的事:为了运行COM组件就 阅读全文
posted @ 2011-06-07 15:57 St.Dlng 阅读(393) 评论(0) 推荐(0) 编辑
摘要: ArcGIS Engine许可初始化关于初始化Engine许可的,其实原理都很简单,大家一般都没有问题,但又往往会因为不够细心加上Engine的“小脾气”,让不少程序员都要在这里犯错。以Engine9.2为例,应用程序是强制初始化许可,也就是说必须使用LicenseControl或AO接口初始化许可,否则应用程序无法启动。Engine9.1未采取强制初始化许可策略,而是应用程序创建时就初始化标准Engine许可。在一般情况下,我们会用将LicenseControl拖放到主窗体上完成初始化。但当Engine程序需要使用ArcGIS Engine Enterprise Geodatabase(以下 阅读全文
posted @ 2011-06-03 10:06 St.Dlng 阅读(510) 评论(0) 推荐(0) 编辑
摘要: ArcGIS Desktop 需要独立的表和属性表都有一个ObjectID字段,这个字段中包含一个唯一的,长整型的数值来指定每一条记录。这个ID是由ESRI的软件来管理的,是不能够手动更改的。在Shapefiles, geodatabase feature classes, 和独立的表格中ObjectID的处理方式不同。---在一个shapefile中, 'FID'字段包含ObjectID,并且值从零开始。 ---在一个geodatabase feature class 或者geodatabase中的独立的表格中, 'OBJECTID' 字段包含ObjectID 阅读全文
posted @ 2011-06-03 10:02 St.Dlng 阅读(581) 评论(0) 推荐(0) 编辑
摘要: MapGIS到ArcGIS数据转换1. 面(区)图层:通过Map2Shp格式转换软件转换(能保证属性和图形数据不丢失)2. 线图层:通过MapGIS文件转换模板转换(能保证属性和图形数据不丢失)3. 点(注记)图层:1) 通过 MapGIS文件转换模板 先把点(注记) 全图形方式输出为DXF,然后通过ArcGIS的conversion tool中的feature class to shapefile转换即可;2) MapGIS 输入编辑 模板,先为点(注记)图层添加字段label,然后 注释赋为属性(点编辑菜单下),然后 文件转换 模板转换为shp,最后在ArcGIS中标注,也可以把标注转换为 阅读全文
posted @ 2011-05-17 11:29 St.Dlng 阅读(8009) 评论(0) 推荐(1) 编辑
摘要: //确保布局视图中的所有元素都保存 mapDoc.ReplaceContents((IMxdContents)axPageLayoutControl1.PageLayout); //处理异常关键三句代码 IObjectCopy objectCopy = new ObjectCopyClass(); mapControl.Map = (IMap)objectCopy.Copy(mapDoc.get_Map(0)); objectCopy = null; mapDoc.Save(mapDoc.UsesRelativePaths, false); mapDoc.Close(); 阅读全文
posted @ 2011-05-05 11:39 St.Dlng 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 我们知道.Net中对于内存的管理有两种方式,一种是托管对象管理,另一种是非托管对象管理。而我们通常理解的内存管理就是GC(垃圾收集),虽然GC通过对托管堆的管理,可以使我们有机会从繁锁的诸如内存泄漏之类的问题中解放出来,可以将精力专注于程序的逻辑上。但是将所有的事情都交给GC有时会损及程序的效率,严重的甚至会导致错误。为什么会出现这种情况呢?问题在于对非托管资源(文件句柄)或者需要特别关照的对象(Bitmap)对象等,GC表现得就有点差强人意了(这句话或许说得并不正确,因为微软设计GC的本意就是用来针对托管对象管理)。如何有效地利用GC来进行内存管理,如何对程序的性能进行优化不是本文讨论的范围 阅读全文
posted @ 2011-04-28 10:57 St.Dlng 阅读(293) 评论(0) 推荐(0) 编辑