ArcEngine 9.3 学习笔记(三):几何对象与空间参考(空间参考,知识总结Demo:构建一个Polygon几何要素程序)

2.5 空间参考

2.5.1 空间参考简介

  空间参考Spatial Reference,是GIS 数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标。在同一个地图上显示的地图数据的空间参考必须是一致的,如果两个图层的空间参考不一致,往往会导致两幅地图无法正确拼合,因此开发一个GIS系统时,为数据选择正确的空间参考非常重要。

  AE 提供了三个定义好的坐标系统:ProjectedCoordinateSystem、GeographicCoordinateSystem、SpatialReference Environment;

  若需要自定义定义坐标系统,则使用以下对象:Projection,Datum,AngularUnit,Spheriod,PrimeMeridian和GeoTransformation等。

2.5.2 修改空间参考

  以下代码片段演示了如何改变一个图层的空间参考。

 1         /// <summary>
 2         /// 改变一个图层的空间参考
 3         /// </summary>
 4         /// <param name="pFeatureLayer">图层</param>
 5         /// <param name="gcsType">空间参考模型</param>
 6         public void ChangeLayerRef(IFeatureLayer pFeatureLayer, int gcsType)
 7         {
 8             try
 9             {
10                 IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
11                 // QI到IGeoDataset
12                 IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
13                 // QI 到IGeoDatasetSchemaEdit
14                 IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
15 
16                 // 判断是否可改变空间参考
17                 if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
18                 {
19                     // 创建SpatialReferenceEnvironmentClass对象
20                     ISpatialReferenceFactory2 pSpaRefFactory = new SpatialReferenceEnvironmentClass();
21                     // 创建地理坐标系对象
22                     IGeographicCoordinateSystem pNewGeoSys = pSpaRefFactory.CreateGeographicCoordinateSystem(gcsType);// 4214代表北京1954
23                     pGeoDatasetSchemaEdit.AlterSpatialReference(pNewGeoSys);
24                 }
25             }
26             catch (Exception)
27             {
28                 throw;
29             }
30         }
View Code

2.6 开发野外测量点构建一个Polygon几何要素程序

2.6.1 功能情景描述:

  现有一存储为*.txt格式文本文件存储野外测量几个建筑物的坐标信息,如图所示,我们需要通过开发一个功能,能够图取这些坐标信息并根据坐标点建筑物属性来构建建筑物,并创建成一个ShapeFile加载到MapControl上。   

  首先,先创建如下图所示的WinForm界面:

  后台代码如下:

View Code

运行后,选择坐标文件,已经保存路径,点击创建后,将在指定的目录创建mxd文件,打开后显示效果如下:

2.4.6 Demo总结:

  在本Demo中大家学习了如下主要内容:

  1. 通过IWorkspaceFactory接口和IFeatureWorkspace以及Shapefile WorkspaceFactory对象创建一个存储在硬盘上的shapefile文件。

  2. 通过IFields,IFieldsEdit,IField等接口为创建的ShapeFile创建属性字段

  3.通过IGeometryDef和IGeometryDefEdit接口为Shapefile创建图形类型

  4.通过IPointCollection来构建Polygon对象。

 

 

posted @ 2013-06-02 23:22  铁手三郎  阅读(1389)  评论(0编辑  收藏  举报