摘要:
ADO.NET概览在应用程序开发过程中,大多数时候都需要与数据库进行交互。在.NET问世之前,常用的有ODBC、OLEDB和ADO等数据访问技术。而在.NET下,Microsoft推荐使用ADO.NET这种全新的数据处理方式。ADO.NET包括两个核心组件:数据提供程序和数据集。数据提供程序用于连接到数据源,支持数据访问和处理。数据集支持数据以关联的方式,在断开连接的情况下独立的缓存数据,根据需要更新数据源。每个数据源提供程序都有各自的命名空间,并且都把各自所连接的数据源类型作为其前缀。如System.Data.SqlClient命名空间是SQLServer的.NETFramework数据提供 阅读全文
摘要:
MapDocument是一个很有用的组件类,可用于读取和修改地图文档(.mxds)。本文演示如何打开一个地图文档,并且利用一个循环来访问其所有的地图(maps)和图层(layers)。在该示例中,将这些对象的名称输出到控制台。示例代码using System;using System.Collections.Generic;using System.Text;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.esriSystem;class Program{ static void Main(string[] args) { Open... 阅读全文
摘要:
ArcEngine开发——右键菜单的设计与实现利用ArcGIS Engine开发自定义GIS应用程序中,一般有两种方式来建立右键菜单。一是利用开发工具自带的右键菜单控件,如Visual Studio中的ContextMenuStrip控件;二是利用ArcGIS Engine封装好的IToolbarMenu接口。相比较而言,前者实现起来较简单,但后者使程序具有更好的面向对象性,也更利于扩展,在大型系统中,使用该方法是较好的选择。本文详细讲述如何利用IToolbarMenu接口实现右键菜单功能。设计程序主界面如下图所示。基本浏览功能以及获取TocControl控件中的图层信息详见ArcEngine 阅读全文
摘要:
在C#中,实现数值与字符串的相互转换主要有两种方式。一是利用.NETFramework中System命名空间下的Convert静态类。二是利用各数值类型结构自身提供的ToString/Parse方法。这里主要介绍后者。 数值转字符串 在C#中,int,float,double等数值类型都提供了一个ToString方法,将对应实例的数值转换为其等效的字符串表示形式。最简单的使用方式如下。其它数值类型转字符串类型与此类似。1 int i = 5;2 string str = i.ToString(); 字符串转数值 在C#中,利用int,float,double等数值类型的Parse方法,可以方. 阅读全文
摘要:
作为程序开发人员,除了使用基本的IDE(Integrated Development Environment)之外,一般都会结合几款相应的工具来配合程序开发工作。作为GIS开发人员来说尤其如此,除了常备的数据库类工具、代码类工具、编译/反编译工具等,还得频繁使用GIS开发相关工具。比如在应用ArcGIS Engine进行GIS开发时,会经常用到ESRI Object Browser、Guid Generator、Library Locator等工具。略一算来也有好几种了。试想你在开发过程中不断的从开始菜单中或者桌面上启动这些工具,是不是有些繁琐呢?好在很多IDE都提供了启用外部程序的功能,简. 阅读全文
摘要:
某些时候有这样一种需求,将一个要素类按其某字段属性分解为多个图层。可在ArcGIS下自定义ETL(Extract --> Transform --> Load)工具,方便快捷的实现上述需求。本文结合示例讲解实现步骤。现有一shp图层,其图形特征如下所示。该图层有一字段"ID",取值范围为1、2、3。在ArcGIS下新建一个ETL工具。建立该工具详细步骤请参考ArcGIS下自定义ETL工具——删除重复点。打开Spatial ETL Tool程序窗口,按下图顺序设置分解图层的字段。点击运行,设置要素类输出目录,即可大功告成,被分解后的要素类的名称为所选字段的值。由于 阅读全文
摘要:
ArcGIS数据编辑——反转线段方向 改变弧段方向的命令可以逆转所选线段的方向,使得当前草图的最后一个节点变为第一个,因此它能改变要素的起讫方向。这个命令在编辑表示流向的线段时非常有用,另外在使用某些符号时,比如箭头,箭头的朝向依赖于线段的方向。反转线段方向示意图如下所示: 另外,当以修剪或延伸的方式修改线段时,线段默认从其最后一个节点处实行修剪或延伸。如果期望从第一个节点处修剪或延伸线段,那么可以使用反转线段方向这个命令。 如何反转线段方向在Editor工具条中,点击当前任务下拉框,并点击Modify Feature项。点击编辑按钮。点击你期望改变方向的线。在草图的任何部位上右击并点击Fli 阅读全文
摘要:
由于项目需要,现要将MySQL中的数据库转移至SQL Server中,本文正是来自于此,图文并茂讲解实现全过程。本文所涉及的机器环境如下:Windows XP SP3,MS SQL Server 2005,MySQL Server 5.1。一.安装MySQL ODBC驱动为MySQL安装Conn... 阅读全文
摘要:
范式(Normal Form),它是英国人 E.F.Codd(关系数据库理论的创建者)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。理论上,目前有迹可寻的共有8种范式,依次是:1NF、2NF、3NF、BCNF... 阅读全文
摘要:
承接前一内容(ArcEngine开发——地图浏览)稍作界面调整,添加TOCControl、TextBox和两个Button控件,调整后如下: 为了使TOCControl具有更多的功能,必须编写自己的代码。一个首当其冲的问题就是获取鼠标在TOCControl上点击的位置上所对应的信息,包括地图、图层或者图层符号等。实现这个功能,ArcEngine中提供了两个方法。其一是TOCControl封装的HitTest()方法,其二是GetSelectedItem()方法。 先定义以下变量:代码 使用HitTest()方法:代码 GetSelectedItem()方法相比HitTest()方法少了鼠标点 阅读全文
摘要:
对于GIS来说,地图的浏览功能(包括大小缩放、漫游、历史视图控制等)是一项最基础的功能,在所有的GIS系统中都要求实现。利用ArcEngine开发的GIS中实现这些功能不止一种方法。当然最简单的方法是利用ArcEngine的内置Command控件来与地图显示控件进行交互,另外也可以通过ArcEngine类库的相应接口和方法来实现。本文结合一个入门级实例讲述不同方法来实现地图浏览功能。先上效果图,如下:用ArcEngine内置的Command控件来实现上图所示功能简直易如反掌,实例化对应的Command对象并显式的运行它,即可。比如中心放大和前一视图功能的实现代码如下: //中... 阅读全文
摘要:
动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL不是可执行文件,DLL 是一个包含可由多个程序同时使用的代码和数据的库。 通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。... 阅读全文
摘要:
在ArcGIS下,如果想得到这样一个效果:移动要素中的某一个顶点,但同时又不改变该要素的大体几何形状,那么你可以在Editing Options(编辑选项)对话框(Editor>Options)的General选项卡下进行相关设置,选中Stretch geometry proportionately when move a vertex,就可以实现该要求了。 在按比例拉伸的情况下,当你拖放... 阅读全文
摘要:
ArcMAp的高级编辑工具中提供了对线/面要素进行概括/平滑处理的工具。 概括工具、平滑工具分别如下: 概括/平滑示意图如下: 概括操作的基本原理:利用某算法从原始要素的点集合中抽取出其中的一部分,形成原点集合的子集。 平滑操作的基本原理:平滑操作实际上是分两步完成的,首先对原始点集合进行概括处理,然后对前一步得到的子集进行贝塞尔(Bessel)插值,得到光滑效果。见如下平滑原理示意... 阅读全文
摘要:
在.Net下进行WinForm开发,GroupBox是经常要用到的一个控件。但是GroupBox自身的边框是灰白色的,其样式很难令开发者满意。在不借用第三方控件的情况下,通过其的Paint事件对GroupBox进行重画,也可以很方便的修改其边框颜色/样式。 阅读全文