摘要: 在AE数据处理过程中,数据量往往不小,单线程处理往往由于主线程阻滞导致用户就不能进行其他操作了,还会出现假死的状态。因此前端出现一个等待窗体或者进度条,在后台线程处理数据是很有必要的!今天计划实现这样的一个功能,使用BackgroundWorker来实现。首先还是要参考已有的例子!(水平低,没办法啊!)http://msdn.microsoft.com/zh-cn/library/b2zk6580(v=vs.85).aspxView Code using System;using System.Collections;using System.ComponentModel;using Syst 阅读全文
posted @ 2012-03-16 16:32 太一吾鱼水 阅读(394) 评论(2) 推荐(0) 编辑
摘要: 一直都犯了严重的错误,妄想将SqlServer或者Oracle中的多张具有关联关系的表存储到Geodatabase中,而且存储成包括要素类、表和关系的这样多个对象!数据验证让我头疼不已。存入关系数据库中的数据还不完整,比如坐标,这样数据验证的操作就让我无法忍受了。 那不如换一种思路:直接通过关联查询关系数据库,将查询结果存储到Geodatabase中,这样数据存在冗余,但是这样的冗余数据是和制图显示紧密结合的。参考Surfer软件的数据方式就可以了,干嘛搞的那么复杂?正解。一定要想法把问题简单化,不然把自己头搞大了也不行。 阅读全文
posted @ 2012-03-15 13:58 太一吾鱼水 阅读(288) 评论(1) 推荐(0) 编辑
摘要: 今天计划学习一下PetShop中的工厂模式。PetShop中的工厂模式是工厂方法模式,还是按照原来的顺序看:NavigationControl.ascx进入,查看Page_Load事件中重点查看BindCategories()方法。View Code 1 private void BindCategories() {2 Category category = new Category();3 repCategories.DataSource = category.GetCategories();4 repCategorie... 阅读全文
posted @ 2012-03-14 10:46 太一吾鱼水 阅读(304) 评论(0) 推荐(0) 编辑
摘要: PetShop项目学习数据库结构工厂方法模式页面缓存缓存了页面中的一些变量文件缓存依赖消息队列ORM了解————2012-3-12-16:40:51————今天才真正看了PetShop的代码,感觉好复杂啊!微软用ADO.net实现了类似于ORM的机制。首先PetShop在Oracle中的数据表如下,包括4个解决方案:程序集描述:Model定义用到的对象类DBUnitility数据库操作,看了OracleHelper abstract类,主要包括五个静态的连接字符串:View Code public static readonly string ConnectionStringLocalTra. 阅读全文
posted @ 2012-03-12 17:31 太一吾鱼水 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 今天尝试开发用户登录模块!结果失败了,用Access开发,本来希望能实现ORM映射的,但是发现用在用户登录这一块太复杂。而且如果要管理用户,添加删除修改,用DataTable存储查询结果,并将数据源绑定到DataGridView明显更加方便!可能是我没有习惯吧! 这里参考了一个五层设计:数据操作层,对象,关系对象映射、业务、界面。感觉还是比较复杂,不过好处不言而喻。而且这样都能够使编程傻瓜化! http://www.cnblogs.com/BudEasyCode/archive/2012/03/03/2378227.html 明天继续弄!(19:58:06) 用别人写的类不习惯,应该... 阅读全文
posted @ 2012-03-10 20:00 太一吾鱼水 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 前面实现的编辑功能存在以下问题:没有与属性表编辑联动,对于分组图层无法编辑,没有考虑不同工作空间的情况,没有考虑版本的问题,没有设置右键菜单……今天解决没有与属性表编辑联动,对于分组图层无法编辑两个问题:1. 实现与界面分离的编辑事件类,只需传入编辑工具条按钮进行构造,执行OnCreate()方法。View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using ESRI.ArcGIS.Controls; 6 using E... 阅读全文
posted @ 2012-03-10 12:55 太一吾鱼水 阅读(1849) 评论(8) 推荐(0) 编辑
摘要: 有些沮丧,ArcGIS9.3的汉化包居然能够汉化AE!以前从来没有用过。现在实现ArcEngine的属性编辑似乎没有多少意义了!只要调用ToolBarControl添加相关的Command按钮就行了!唯一的理由就是为了界面布局的统一,哎!原来开发可以这样简单。不过理解ArcGIS和AE的设计思想确实是不应该放弃的。 接下来要学习并实现属性表的编辑,是指在属性窗体中进行批量修改! 学习内容主要是ArcDataBinding2008项目,这是AE自带的示例程序。首先这个项目包括两个类FieldPropertyDescriptor和TableWrapper;FieldPropertyDesc... 阅读全文
posted @ 2012-03-08 14:54 太一吾鱼水 阅读(1689) 评论(5) 推荐(1) 编辑
摘要: 强审批工作流程系统:某部门有多个科室,每个科室负责不同的工作业务,管理不同的数据和图形。每个科室的工作都需要层层审批,技术员负责数据和图形数据的录入和编辑;交分管科长签字。各个科室再交由上一级领导签字。 首先是一个工作流的问题!参考电子政务的设计,开始关注workflow技术。同样的系统对于用户的权限要求很高,如何设计系统的权限是一个问题。 这里空间数据采用SDE管理,Version是ArcSDE提高的多用户编辑方案。这里首先有一个数据的权限,还有系统功能的权限,数据的权限对应于系统功能的权限。又接触到RBAC(Role-Based Access Control,基于角色的访问控制) ... 阅读全文
posted @ 2012-03-07 15:13 太一吾鱼水 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 第一次意识到BindingSource组件的强大!所以需要学习一下。首先是尝试建立了一些例子,以期对其机制和相关的内容进一步详细理解!第一个例子:界面设计:一个DataGridView、BindingNavigater;将DataGridView的DataSource属性设置为选择数据源,这里选择了一个Database1.mdb的Access数据库。选择完成后会生成一个DataSet、BindingSource和TableAdapter。将bindingNavigater1的BindingSource属性设置为bindingsource;打开窗体的代码视图会发现已经自动生成了如下代码:View 阅读全文
posted @ 2012-03-06 17:10 太一吾鱼水 阅读(2986) 评论(1) 推荐(0) 编辑
摘要: 学习目的:解决具有强审批工作流程中的数据更新、权限管理和审批。ArcGIS 版本可以为多个用户创建属于该用户自己的版本,每个用户在对应的版本上可以迚行长时间的编辑也就是长事务的编辑,而且他们之间互不影响,因为各自编辑的数据都存储在变化表中。在用户编辑事务完毕后,可以将对应版本协调相关的父版本,如果有冲突解决相关冲突,协调完毕后可以提交到上一版本了。利用版本化,多个用户可对 ArcSDE 地理数据库中的同一数据进行编辑,而无需应用锁或复制数据。用户始终可以通过版本访问 ArcSDE 地数据库。连接到多用户地理数据库时,需要指定将连接的版本。默认情况下将连接到 DEFAULT 版本。2.ArcSD 阅读全文
posted @ 2012-03-05 12:02 太一吾鱼水 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 数据库设计与Case建模工具概念建模:E-R图Viso建模工具(不好用,好像不支持E-R建模导入数据库这种正向工程,支持从数据库导出对象图这种反向工程)VP-UML或者PowerDesigner关系数据建模,直接绘制E-R图,将概念和逻辑建模结果图直接生成数据库(支持正向工程)。ArcGIS Diagrammer空间数据库建模(ArcGIS的空间数据库用例建模工具,可以导出Xml文件,在ArcCatalog中通过Xml建立数据库) 阅读全文
posted @ 2012-03-04 21:34 太一吾鱼水 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 这个算法是去年8-9月份进行“煤矿三维巷道建模”开发中运用到的,总结一下: 这个算法是自己第一次实实在在地进行GIS算法学习开发,从中学习到很多东西。 很多解析几何的知识:象限角、向量、标架坐标系统。 首先是计算向量的象限角 1 /// <summary> 2 /// 获取由两个点所形成的向量的象限 阅读全文
posted @ 2012-03-03 15:47 太一吾鱼水 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 这个算法是去年10月份因为需要实现了的。基本上完全依照蒋波涛在《插件式GIS》一书中的介绍。 需求:多条Polyline,它们两两相交,这样形成了线围成多边形面的情况,需要将这些多边形面利用程序自动提取。 实现方法:构建图,通过左转算法实现。 详细介绍可以参考蒋波涛的书,里面的算法基本上可以完成所需功能。2014年2月19日补充: 这篇文章是12年3月份写的,现在因为对项目中某业务三维渲染以及以前煤矿巷道三维建模进行重新思考,重新看了蒋波涛书中的算法数据组织部分,发现其实就是一个邻接多重表的,这是一种无向图的链式存储结构。感觉这种数据结构在GIS的拓扑相关的分析中真的是很实用的。 ... 阅读全文
posted @ 2012-03-01 09:16 太一吾鱼水 阅读(1651) 评论(0) 推荐(0) 编辑
摘要: 这里给出采用混合模式开发编辑工具条的完整代码,但是没有给出界面,相信熟悉ArcGIS操作的朋友一定可以设计出类似的界面。功能还有不少不完善的地方,希望感兴趣的朋友可以帮忙改进!View Code 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.... 阅读全文
posted @ 2012-02-27 11:39 太一吾鱼水 阅读(6145) 评论(11) 推荐(1) 编辑
摘要: 我已经出离的愤怒了,对于这个问题一年半以前曾经研究过,上过学期又回过头来弄过,但是到现在我仍然没有像样的把这个问题解决掉!所以下定决心抽一点时间把这个问题解决一下。不求做出来的东西功能多么全面,但求弄够实现基本功能! 参考了一些代码,但是还是没有完全得到要领!目前开发ArcGIS编辑模块有两种方式:一种是用IEngineEditor接口。 先来实践混合用的,http://www.gisall.com/html/52/25952-2752.html文中提出:EditTool用ControlsEditingEditToolClassSketchTool用ControlsEditingSke... 阅读全文
posted @ 2012-02-26 11:30 太一吾鱼水 阅读(6119) 评论(2) 推荐(0) 编辑
摘要: LOD(level of detail)在大规模数据显示中有着重要的作用,但是自己对于这一块几乎不了解!其中涉及了大量的数据结构和算法,是GIS中图形图像快速显示的重要内容,必须引起足够的重视。ArcGIS的ArcScene和ArcGlobe都有LOD的相关内容,所以在查阅相关资料的同时有必要结合ArcGIS进行学习。 ARCGIS帮助文档中对LOD的定义:详细程度是指在 2D 视图或 3D 视图中表示的对象的复杂性。通常在计算机图形中,要素的详细程度会在要素远离观察者时减小,或者基于对象重要性、观察空间速度或位置通过某些其他公式而减小。减小 LOD 可能会涉及对应用于几何的要素和/或简... 阅读全文
posted @ 2012-02-24 10:19 太一吾鱼水 阅读(2191) 评论(0) 推荐(0) 编辑
摘要: 1.什么是ORM(Object Relational Mapping,对象关系映射) 面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。 当你开发一个应用程序的时候(不使用O/R Mapping),你可能会写不少数据访问层的代码,用来从数据库.. 阅读全文
posted @ 2012-02-23 15:51 太一吾鱼水 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 在Geodatabase中有一张Table,希望通过AE开发的方式将信息存储到表的一个Blob字段中。这个该如何实现? 1 IWorkspaceName pWpsName = null; //当前工作空间名称 2 pWpsName= GWorkSapce.CreateAccessWorkSpace(); 3 if (pWpsName==null) 4 { 5 return; 6 } 7 m_WorkspacePath = pWpsName.P... 阅读全文
posted @ 2012-02-22 15:34 太一吾鱼水 阅读(615) 评论(3) 推荐(1) 编辑
摘要: 安装Oracle10g到安装完成都没有出啥问题,也打开了网页查看相关的数据库信息,但是在使用SQLPlus的时候提示“ERROR - ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”,在计算机——》管理中Listener根本启动不了,只要一刷新就发现根本没有启动!真让人头疼!查了相关资料解决方法也很简单,只需要打开Net Manager,修改监听位置的主机名和数据服务中的全局数据库名和SID就行了,最后保存网络配置!这样重启服务就可以使用SQLPlus了,不过网页又打不开了!这又是怎么一回事呢?打不开网页,OracleDBConsoleorcl服务没有启动,启动的时 阅读全文
posted @ 2012-02-21 09:59 太一吾鱼水 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 学习笔记,转载请注明出处!运用ToolStripManager可以实现ToolStrip工具条的合并,下面是多文档应用程序开发中将文档子窗体的菜单和工具条合并到父窗体中用的的部分代码!合并,需要父窗体有ToolStripPanel和ToolStrip。MenuStrip是ToolStrip的子类,当然也可以实现合并了!这个类的使用需要好好揣摩学习。 1 protected override void OnMdiChildActivate(EventArgs e) 2 { 3 DocumentForm olddocument = m_activeDocum... 阅读全文
posted @ 2012-02-14 15:47 太一吾鱼水 阅读(917) 评论(1) 推荐(0) 编辑