随笔分类 -  C#+ARCGIS

C#+ARCGIS
摘要:空间参考(Spatial Reference)是GIS数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标。 在同一个地图上显示的地图数据的空间参考必须是一致的,如果两个图层的空间参考不一致,往往会导致两幅地图无法正确拼合,因此开发一个GIS系统时,为数据选择正确的空间参考非常重要。ArcGIS Engine提供了一系列对象供开发者管理GIS系统的坐标系统。对大部分开发者而言了解ProjectedCoordinateSystem, GeographicCoordinateSystem, SpatialReference Environment这三个组件类是非常有必要 阅读全文
posted @ 2013-08-09 14:49 秋水惜朝 阅读(452) 评论(0) 推荐(0)
摘要:Envelope是所有几何对象的外接矩形,用于表示几何对象的最小边框,所有的几何对象都有一个Envelope对象,IEnvelope是Envelope对象的主要接口,通过它可以获取几何对象的XMax,XMin,YMax,YMin,Height,Width属性。通过IEnvelope的Expand方法还可以按比例缩放Envelope对象的范围,如下图所示:Curve对象几何对象 除去Point,MultiPoint和Envelope外,其他所有的几何体都可以看做是Curve(曲线)。Line,Polyline,Polygon,CircularArc,BezierCurve,EllipticAr. 阅读全文
posted @ 2013-08-09 14:43 秋水惜朝 阅读(2672) 评论(0) 推荐(0)
摘要:Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring 对象构成,也可以使用多个Ring组成。Polygon通常用来代表有面积的多边形矢量对象,如行政区,建筑物等。组成Polygone的是Ring其中Ring可以分为Outer Ring(外环)和Inner Ring(内环)之分。外环和内环都是有方向的,它们的区别是外环的方向是顺时针的,内环的方向是逆时针。以下代码片段演示如何构建一个Polygon: private object pMissing = Type.Missing; public IGeometry GetPolygonGeometry() { c... 阅读全文
posted @ 2013-08-09 13:27 秋水惜朝 阅读(428) 评论(0) 推荐(0)
摘要:Segment几何对象 Segment对象是一个有起点和终点的“线“,也就是说Segement只有两个点,至于两点之间的线是直的,还是曲的,需要其余的参数定义。所以Segment是由起点,终点和参数三个方面决定的。Segment有4个子类,它的4个子类如下图:Path几何对象 Path是连续的Segment的集合,除了路径的第一个Segment和最后一个Segment外其余的Segment的起始点都是前一个Segment的终止点,即Path对象的中的Segment不能出现分离,Path可以是任意数的Segment子类的组合。 Ring几何对象 Ring是一个封闭的Path即起始和终止点有相同. 阅读全文
posted @ 2013-08-09 11:50 秋水惜朝 阅读(1729) 评论(0) 推荐(0)
摘要:世界的本质是物质,对于GIS来说,点就应该是矢量数据的本质,点生线,线生面„„,如此组合,构成了GIS世界中的矢量空间。 Point几何对象 Point是一个0维的几何图形,具有X,Y坐标值,以及一些可选的属性:如高程值(Z值),度量值(M值) 和ID号,点对象用于描述精确定位的对象,例如一个电话亭在一个城市的精确位置。以下代码演示如何创建一个Point对象: /// /// 获取点 /// /// /// /// private IPoint ConstructPoint(double x, double y) { IPoint pPoint = new Point... 阅读全文
posted @ 2013-08-09 11:22 秋水惜朝 阅读(362) 评论(0) 推荐(0)
摘要:几何对象是ArcGIS Engine中最基本的也是最常用的对象,我们所说的空间对象(点,线,面)都是几何对象,我们在删除,创建和进行地理分析的时候,就是处理一个包含几个对象的矢量图形。Geometry是ArcGIS Engine中使用最为广泛的对象集之一,用户在创建、删除、编辑和进行地理分析的时候,就是处理一个包含几何形体的矢量对象;除了显示要素意外,控件对象选择,要素符号化,标注要素,编辑要素都需要Geometry参与。 在这个模型中,我们看到某些几何对象可以组合产生新的几何形体,如polyline又path构成,path又可以由segement组成,但是这并不意味着用户必须按照这种层次去构 阅读全文
posted @ 2013-08-09 11:08 秋水惜朝 阅读(383) 评论(0) 推荐(0)
摘要: 通过对 DBMS 中的表和视图定义查询,ArcMap 用户可将“查询图层”添加到地图。  查询图层类似于任何其他要素图层或单独表,所以这些图层可用于作为地理处理工具的输入来显示数据,或使用开发人员 API 通过编程方式进行访问。  创建“查询图层”后,它可另存为图层文件 (.lyr) 或用于创建图层包 (.lpk)。这样可以很容易地与其他应用程序、地图文档和其他用户共享“查询图层”。 ArcMap 中的所有图层都需要唯一标识符。因此,查询图层也必须含有唯一标识符。 通常,唯一标识符字段属于 ObjectID 属性,地理数据库中所有对象均应具有该属性。但是,由于查询图层也可以使用未存储在 阅读全文
posted @ 2013-08-09 10:56 秋水惜朝 阅读(476) 评论(0) 推荐(0)
摘要:查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性查询(和其他关系型数据库的查询类似),还提供了空间查询。在介绍查询的时候,让我们先了解下面的对象。Table对象 Table是不含有空间信息的一张二维表,它主要实现了ITable接口。在这张二维表中,每一行称之为Row(IRow),ITable接口 定义了对这张二维表行的插入,更新,查询,以及删除等操作。 独立表(standalone table):就是一个单独的不含空间信息的表也就是只能在ArcMap中Table of Contents 的Source选项卡中看到的。 对象类 对象类是在Table的基础上扩展起来的,因此在外观上来 阅读全文
posted @ 2013-08-08 10:31 秋水惜朝 阅读(463) 评论(0) 推荐(0)
摘要:Provides a helper for working with a mosaic dataset workspace extension.Product AvailabilityAvailable with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.MembersDescriptionFindExtensionFind mosaic dataset workspace extension.Classes that implement IMosaicWorkspaceExtensionHelperClassesDescriptionM 阅读全文
posted @ 2013-08-08 09:25 秋水惜朝 阅读(277) 评论(0) 推荐(0)
摘要:Product AvailabilityAvailable with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.DescriptionThe RasterBand object represents an existing band of a raster dataset. This band may be the only band in a single raster dataset or one band in a multiband raster dataset.A RasterBand can be obtained from 阅读全文
posted @ 2013-08-07 17:24 秋水惜朝 阅读(301) 评论(0) 推荐(0)
摘要:ConstantValueDescriptionPT_UNKNOWN-1Pixel values are unknown.PT_U10Pixel values are 1 bit.PT_U21Pixel values are 2 bits.PT_U42Pixel values are 4 bits.PT_UCHAR3Pixel values are unsigned 8 bit integers.PT_CHAR4Pixel values are 8 bit integers.PT_USHORT5Pixel values are unsigned 16 bit integers.PT_SHORT 阅读全文
posted @ 2013-08-07 17:05 秋水惜朝 阅读(243) 评论(0) 推荐(0)
摘要:DescriptionA Point is a zero-dimensional object that represents a specific (X, Y) location in a the two-dimensional XY-Plane. A Point may also have Z, M, and ID attributes associated with it. Existence of attributes does not alter the dimensionality of a Point nor does it alter geometric calculation 阅读全文
posted @ 2013-08-07 16:59 秋水惜朝 阅读(560) 评论(0) 推荐(0)
摘要:打开栅格目录中的一个数据 IRasterDataset GetRasterCatalogItem(IRasterCatalog pCatalog, int pObjectID) { //栅格目录继承了IFeatureClass IFeatureClass pFeatureClass = (IFeatureClass)pCatalog; IRasterCatalogItem pRasterCatalogItem = (IRasterCatalogItem)pFeatureClass.GetFeature(pObjectID); return pRasterCatalogItem.Ra... 阅读全文
posted @ 2013-08-07 16:15 秋水惜朝 阅读(1571) 评论(0) 推荐(0)
摘要:When To UseUse IWorkspaceFactory when you need to create a new workspace, connect to an existing workspace or find information about a workspace.MembersDescriptionContainsWorkspaceIndicates if parentDirectory contains a valid workspace, or is a valid file-system workspace.CopyCopies a workspace to t 阅读全文
posted @ 2013-08-07 14:17 秋水惜朝 阅读(1028) 评论(0) 推荐(0)
摘要:打开栅格数据要打开一个栅格数据,这个有点类似我们打开FeatureClass一样,先要获取工作空间,只不过我们过于要素类的时候需要IFeatureWorkspace,而栅格数据则需要IRasterWorkspace,示例如下: IRasterWorkspace GetRasterWorkspace(string pWsName) { try { IWorkspaceFactory pWorkFact = new RasterWorkspaceFactoryClass(); return pWorkFact.OpenFromFile(pWsName, 0) as IRasterWork... 阅读全文
posted @ 2013-08-07 14:00 秋水惜朝 阅读(599) 评论(0) 推荐(0)
摘要:栅格数据介绍 在空间数据库中,Esri对栅格数据提供了三种模型,栅格数据集,栅格目录,以及ArcGIS 10 中新推出的镶嵌数据集。 栅格数据集也就是我们经常所得jpg,tif文件等,ArcGIS 将这些栅格数据抽象为RasterDataset,栅格数据集就代表了磁盘中的一个文件,它由一个或多个波段组成。在使用栅格数据集的时候,栅格数据会被转换成IMG文件存储在数据库中。 我们可以对栅格数据集进行一些操作,如改变空间参考,建立影像金字塔等。栅格目录,正如其名字一样是一个目录,跟书的目录相似,它记录了一个或者多个栅格数据集,每一个栅格数据集都作为一条记录存储在栅格目录中。栅格目录对栅格数据集的管 阅读全文
posted @ 2013-08-07 13:45 秋水惜朝 阅读(561) 评论(0) 推荐(1)
摘要:void CreateDomain(IWorkspace pWorkspace) { IWorkspaceDomains pWorkspaceDomains = (IWorkspaceDomains)pWorkspace; ICodedValueDomain pCodedValueDomain = new CodedValueDomainClass(); pCodedValueDomain.AddCode("RES", "Residential"); pCodedValueDomain.AddCode("COM", "Com 阅读全文
posted @ 2013-08-07 13:16 秋水惜朝 阅读(277) 评论(0) 推荐(0)
摘要:public void ChangeFieldAliasName(ITable pTable, string pOriFieldName, string pDesFieldName) { IClassSchemaEdit pClassSchemaEdit = (IClassSchemaEdit)pTable; //给对象加上锁 ISchemaLock pSchemaLock = (ISchemaLock)pTable; pSchemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock); if (pTable... 阅读全文
posted @ 2013-08-07 13:08 秋水惜朝 阅读(463) 评论(0) 推荐(0)
摘要:DescriptionThe IFieldEdit interface is used when creating new fields. You should not use it to modify fields, for that purpose use IClassSchemaEdit. In general, when modifying fields, the restrictions that apply in ArcCatalog also apply in ArcObjects; for example, you cannot change the name or type 阅读全文
posted @ 2013-08-07 11:32 秋水惜朝 阅读(675) 评论(0) 推荐(0)
摘要:DescriptionThe Fields object represents a collection of columns in a table. The term field is synonymous with column. Each table in a database has an ordered collection of fields, there is always at least one field in a table. The ordered collection behaves like a list, so it is possible to access i 阅读全文
posted @ 2013-08-07 11:30 秋水惜朝 阅读(447) 评论(0) 推荐(0)