- 博客(40)
- 资源 (7)
- 收藏
- 关注
原创 使用Linq进行数据分组
class StudentClass { #region 数据 protected enum GradeLevel { FirstYear = 1, SecondYear, ThirdYear, FourthYear }; protected class Student { public string
2017-06-27 11:04:04 470
转载 C# Json 序列化与反序列化
public class JsonSerializer { /// <summary> /// json序列化 /// </summary> /// <typeparam name="T"></typeparam> /// <param nam...
2017-06-26 15:39:16 276
原创 gridcontrol设置表头序号列标题
效果:实现方法://设置序号列的宽度 gridView1.IndicatorWidth = 50; private void gridView1_CustomDrawRowIndicator ( object sender ,DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e ) ...
2017-06-26 15:32:31 1317
转载 DevExpress GridControl复合表头(多行表头)设置 .
关于DevExpress.XtraGrid的复合表头或多行表头的示例,界面如下图所示1.首先要把DevExpress的GridControl转换为BandedGridView2.设置显示列及绑定的字段 此处设置与我们平常使用GridControl制件一样3.进入设计视图(见下图),点击Bands, 3.1 添加多个Band,如图中1处按键添加
2017-06-26 14:47:24 5903
转载 DevExpress TreeList控件的复选框
TreeList控件可以同时显示树结构和其他数据列,即在一个列上建立父子关系展开或收缩,同时还可以显示其他列的内容。 在TreeList中同时引入了 Node和 Columns概念, 第一列为树结构, 其余列为数据列, 任何列都可作为树结构列(即拖动到第一列)显示。实现多级树---数据源绑定 在TreeList里添加要显示列(第一列为树结构,其他列为数据列)
2017-06-26 13:54:49 760
转载 Dev 控件绑定的数据源批量操作应避免自动刷新
客户端批量操作数据时,控件自带的刷新操作,会造成不必要的时间消耗。 当数据源(如DataTable、Array、List、ObservableCollection或其他IListSource等)被绑定到控件时,批量操作数据时应该断开绑定或挂起控件的刷新。[csharp] view plain copygridContro
2017-06-26 13:35:20 551
原创 DEV gridview 捕获行双击事件
private void ViewHtlb_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && e.Clicks == 2) // 判断是否是用鼠标双击 { DevExpr
2017-06-26 12:37:28 549
转载 Arcengine 实现要素选取的方法
选择一个要素或者一个要素集(FeatureSelection)的方法很多,如IMap::SelectByShape、ILayer::search、IFeatureSection::SelectFeature等方法主要用到的方法:IMap接口的SelectFeature(Layer, Feature) (方法,从一个Layer中选择一个Feature);IMap接口SelectByShape(Sha
2017-06-26 10:51:04 3532
原创 ArcEngine重置Mxd数据源的问题
private void ResetDataSource(IWorkspace pWs, IFeatureLayer pFeaLayer, LayerInfo layerInfo, string strYear) { try { IWorkspaceName pWorkspaceName = GetWo
2017-06-19 17:18:20 1952
转载 ArcSDE版本压缩(compress)(3)
随着时间的推移,地理数据库在经过多次编辑后,增量表会逐渐增大,并且状态的数量也会增加。表越大且状态越多,每次显示或查询版本时 ArcGIS 必须处理的数据就越多。因此,对性能的最大影响不是版本的数量,而是包含在每个版本的增量表中的更改数量。因此,各个版本就可能具有不同的查询响应时间。版本的相关原理:http://wenku.baidu.com/view/7ad2ec7d27284b
2017-06-14 12:02:24 687
转载 ArcSDE版本压缩(Compress)(2)
转载自:http://blog.csdn.net/linghe301/article/details/7777912其实我在今年的开发者大会中专门对ArcGIS版本压缩做了一个详细的说明。为什么专门来说这个呢?其实现在对ArcGIS用户来说,他们在使用多用户版本操作时,发现性能慢一般都知道进行ArcGIS版本压缩,但是他们往往做的就是Compress操作,这样做是远远不够的,因
2017-06-14 12:00:11 1145
转载 ArcSDE版本学习总结(1)
传统版本的理解1、复制数据 传统意义上的版本,针对整体数据进行复制多份数据,每个用户根据自己的数据进行相关的编辑操作,最后统一的进行合并操作。2、锁定数据 另一个版本的概念就是多用户编辑同一份数据,但是针对某一条记录来说采取“锁定—编辑—释放”的方式进行的,这就制约了长事物编辑的概念。 ArcGIS版本的理解 ArcGIS版本与传统关
2017-06-14 11:03:12 673
转载 Geometry cannot have Z values /the geometry has no z values的问题
AE开发,创建要素类,向要素类添加要素时:pFeature.Shape = pGeoCol as IMultiPatch;报错:Geometry cannot have Z values。因为pGeoCol作为MultiPatch几何类型,肯定是有Z值的。所以肯定是要素类不允许有Z值。但是在创建要素类字段时,Shape字段几何类型是MultiPatch。IFields fields = ne...
2017-06-12 20:42:35 1432 1
转载 获取和更新FeatureClass的Extent
在FeatureClass中编辑,删除,或添加要素后,可用如下的代码手动更新一下其Extent ((IFeatureClassManage)pFeatureClass).UpdateExtent(); 获取图层Extent的方法为:((IGeoDataset)pFeatureClass).Extent 或根据图层中的所有要素计算一下Extent: I
2017-06-12 20:09:01 1628
转载 Arcengine的工具中实现Snapping(捕捉)
在Engine的工具(ITool)里: OnClick事件处理函数中:首先需要获取一个图层,作为Snapping的参照,IFeatureLayer targetLayer 然后声明一个IMovePointFeedBack作为鼠标移动时捕捉点的显示:[c-sharp] view plain copy
2017-06-12 20:05:53 2660
转载 ArcEngine 图层标注 (根据字段、角度)
public void EnableFeatureLayerLabel(IFeatureLayer pFeaturelayer, string sLableField, IRgbColor pRGB, int size, string angleField) { //判断图层是否为空 if (pFeaturelayer == null
2017-06-12 17:30:12 684
原创 SDE数据在ArcMap下平移报错超出边界范围
错误信息:用ArcMap加载sde里的数据(数据空间参考是unkown),平移出当前视图窗口的时候报错:One or more layers failed to draw: The specified coordinate exceeds the valid coordinate range原因: domain设置的问题,数据在导入sde的时候默认是按照空间参考的dom
2017-06-12 15:26:01 1052
转载 ArcEngine开发中StartEditing和StartEditOperation的区别(对于数据安全很重要!!)
背景: 最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始、保存、回滚编辑的入口内。通俗点说,就是只有当整个系统开始编辑之后才能激发我自己新增的这个模块,然后在这个模块儿内开始对数据进行编辑操作。在这个过程中碰到了这两个概念的使用问题,经过查找定义与实际测试,将二者区别
2017-06-12 15:21:59 1182
转载 ArcEngine中com对象的释放问题
1、问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题“超出系统资源”和“超出打开游标最大数”;在网上看了一些资料,发现都是说在循环中没有释放已经使用过的对象,但是在循环中实际上是有为com对象赋值为null的,但是还是没法解决。后来想着将对象赋值为null和marshal是不是效果不一样,就特意写了一个简单的循环来测试,代码如下(初级代码,比较乱,请轻喷):
2017-06-12 15:15:14 1562
转载 IHookHelper
一、IHookHelper 主要在用在自定义类型于AE带的的ICommand或ITool等,1.实例化IHookHelper 对象:IHookHelper m_hookHelper = new HookHelperClass(); m_hookHelper.Hook = this.axMapControl1.Object ;这样就可以把AxMapControl传递给其它要用到的地方
2017-06-12 15:00:24 450
原创 DateEdit和TimeEdit用法
DateEdit 控件默认情况下,显示的只有日期,没有时间。下面介绍2中日期和时间同时显示的方法:1.Properties.VistaDisplayMode 为true,2.Properties.VistaEditTime 为true3.Properties 下面的DisplayFormat.FormatString设置为GEditFormat.FormatString设置为G
2017-06-12 10:54:05 5803
原创 Arcengine创建内存工作空间,要素类(InMemoryWorkspaceFactory)
public static IWorkspace CreateInMemoryWorkspace(){ // Create an in-memory workspace factory. Type factoryType = Type.GetTypeFromProgID( "esriDataSourcesGDB.InMemoryWorkspaceFactory"); IWor
2017-06-11 11:55:40 2502
转载 ArcEngine开发中内存不能释放
Net中将数据分为两种类型:值数据类型和引用数据类型,这两种数据类型存储在内存中的不同的地方:值数据类型存储在堆栈中,而引用类型存储在内存的托管堆中。程序中的变量定义在栈空间中,引用类型的对象实际分配在堆内存中,当CLR发现堆上的数据不再被栈引用时,CLR的垃圾回收器就会自动清理他们,当然也可以手动清理,调用GC.Collect() 即可,一般只有在处理大数据的数据回收时才调用,马上释放内存,程序
2017-06-10 22:34:08 1569
转载 ArcEngine的COM对象在.NET中的释放问题
ae的com对象是需要释放的,不然就可能会锁住一些基础设备(如mdb文件等),这里研究了一下ae锁mdb的情况。释放方法一般是,Marshal.ReleaseComObject或Marshal.FinalReleaseComObject但要在什么时候释放com对象呢,这就需要了解dotnet跟com交互的实现方法:运行库可调用包装(RCW)。每次将 COM 接口指针映射到该
2017-06-10 21:57:56 1437
转载 ArcEngine 拓扑分析
原文地址:http://blog.csdn.net/yh0503/article/details/52432193#comments拓扑基础知识拓扑的基础知识拓扑检查常用的方法调用GP工具(CheckGeometry)检查数据的几何CheckGeometry的相关说明 CheckGeometry工具官方说明链接地址CheckGeometry质检项
2017-06-10 21:54:41 985
转载 添加、复制、删除feature
1、插入/// ///向featureclass中批量插入features ,批量插入features,用buffer的方法,要比循环一个个Store的方法快////// 操作数据所在的IFeatureClassprivate void InsertFeatures( IFeatureClass pFeatureClass , List pGeos )
2017-06-10 21:50:27 1471 1
转载 ArcEngine之Com释放(2)
AE中对MDB,SDE等数据库操作时,打开后却往往不能及时释放资源,导致别人操作提示对象被锁定。很多帖子说了很多原理,看的也烦且不实用,比如一句话概括的用System.Runtime.InteropServices.Marshal.ReleaseComObject(object o)释放,说的很不清楚,很多人试过觉的释放不掉。事实上,的确是用该方法,但释放的技巧在于,新建几个AE对象就要逐...
2017-06-10 21:33:16 301
转载 ArcEngine之Com释放(1)
AO底层基于COM架构,ESRI系列产品基本都直接AO组件。特点如下:1、原生的组件属于非托管组件,这可以从产品的进化过程得出结论。2、目前的托管组件例如AE .net开发包,都是直接通过RCW(runtime callable wrapper)方式调用AO底层的组件3、Desktop依然是直接基于COM,通过CCW(COM Callable Wrapper)方式支持我们用.ne...
2017-06-10 21:30:58 1042
转载 DevExpress中的lookupedit的使用方法
绑定数据源: 123lookupedit.properties.valuemember = 实际要用的字段; //相当于editvaluelookupedit.properties.displaymember =要显示的字段; //相当于textlookupedit.properties
2017-06-09 17:52:10 375
转载 使用ArcPy实现Geometry与WKT的相互转换
原文地址:http://blog.csdn.net/linghe301/article/details/29554257 在Web GIS迅猛发展的今天,使用浏览器来进行交互以其方便性、快捷性被广大用户所推崇,那么在传输格式方面,都已比较简单的JSON或者WKT来解决网络带宽带来的数据压力。在ArcGIS10.2版本,已经提供了Geometry与JSON的相互转换,而且在现实业务中,G...
2017-06-08 12:48:43 1610
转载 ArcGIS Engine 几何对象和WKB的转换
using System;using System.Collections.Generic;using System.Text;using GisSharpBlog.NetTopologySuite.IO;using ESRI.ArcGIS.Geometry;namespace Utils{ /// /// This class is used to convert
2017-06-08 12:47:55 1722 1
转载 ArcEngine 数据查询、数据操作总结
数据查询查询地理数据库表查询geodatabase对象的三种常见的接口是IQueryFilter、ISpatialFilter、IQueryDef接口。每个接口都有不同的功能,如下表所示:RequirementIQueryFilterISpatialFilterIQueryDefApply attribute co
2017-06-08 12:16:07 1029
原创 DevExpress GridControl 设置单元格 某一行的背景色
private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) { //第一行 if (e.RowHandle == 0) { e.Appearanc
2017-06-08 10:29:42 8235
原创 根据字符串获取Type
public static Type GetTypeByString(string type) { switch (type.ToLower()) { case "bool": return Type.GetType("System.Boolean", true,
2017-06-08 10:27:56 517
原创 ArcGIS Engine 创建索引(属性索引)
众所周知,建立索引可以提高查询的效率,当对FeatureClass中的某一列频繁的查找,且数据量比较大时,建立索引是非常有必要的。 这里介绍一下,用 ArcGIS Engine 来建立一个属性索引。 [csharp] view plain copyIIndex pIndex = new IndexClass(); IIndexEdit
2017-06-05 11:42:07 1944
转载 ArcGIS Engine实现图层间空间选择的优化策略
如果您是ArcGIS Engine开发人员,也许会有这样的困惑:为什么对两个要素图层进行空间选择,ArcMap中瞬间就出结果了,而Engine中则慢很多倍,尤其是当数据量大时,该速率甚至无法忍受。图层间如何实现高效的空间选择呢?相信阅读完下面的文章,答案会迎刃而解。下面就带着问题来开始今天的讨论吧。问题:假如有一个居民点数据和一个建筑物数据,想要知道哪些居民点被建筑物所覆盖,如何实现?...
2017-06-05 11:35:17 1178 1
转载 ArcEngine接口之IDataStatistics ,获取统计值(唯一值、最值......)
计算字段的统计值。一、获取唯一值[csharp] view plain copyIQueryFilter pQueryF = new QueryFilterClass(); pQueryF.SubFields = "CC"; IFeatureCursor pFeatureCursor = pCoverFC.Se
2017-06-05 11:29:29 2304
原创 ArcEngine之接口IQueryDef,数据库中使用SQL语句
文件地理数据库允许在 QueryDef 中通过 SubFields(字段列表)方法使用表达式和别名完善分析和报告。此外,通过 PostFixClause 支持 ORDER BY 和 GROUP BY。在支持 GROUP BY 时,表达式包括聚合函数,如 MIN、MAX 和 SUM。ALIAS提供给列另外一个名称以提供更易于理解的输出。SQLSELEC
2017-06-05 11:28:42 3340
原创 IGroupLayer接口相关
在AE开发中,我们知道axMapControl.LayerCount能获取图层的数量,但是这种方法不能获取到图层组里面的图层,这对我们对图层的操作很不方便,AE里面提供了的接口,这让我们很好的对图层组操作。 一、IGroupLayer图层的获取 获取一个图层组的Layer,这里AE提供了一个 ICompositeLayer接口,可以获取到IGroupLayer
2017-06-05 11:11:32 1114
ArcGIS国土2014培训教程
2016-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人