2.4.10几何对象总结 在Geometry模型中的几何对象分为两种类型,一类是用来直接构建要素类的称为高级几何对象,一类用来构建高级几何对象相对低一级的几何对象成为构建几何对象如下表所示: 几何对象名称 Polyline 所属类别 构成子几何对象 用于创建和编辑的接口 IGeometryCollection, IPointCollection IGeometryCollection, IPointCollection IGeometryCollection, IPointCollection IGeometryCollection, IPointCollection ISegmentCollection, IPointCollection ISegmentCollection, IPointCollection IPoint,ILine, ICurve IGeometryCollection, IPointCollection IGeometryCollection, IPointCollection IGeometryCollection, IPointCollection IPoint 高级 Path Polygon 高级 Ring MultiPoint 高级 Point TrangleFan,Ring TrangleStrip ,Trangle, Segment MultiPatch 高级 Ring 低级 Path Segment TriangleFan 低级 低级 低级 Segment Point Point TriangleStrip 低级 Point Triangle Point
低级 高级/低级 Point 无 2.5 空间参考
2.5.1空间参考简介
空间参考(Spatial Reference)是GIS数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标。 在同一个地图上显示的地图数据的空间参考必须是一致的,如果两个图层的空间参考不一致,往往会导致两幅地图无法正确拼合,因此开发一个GIS系统时,为数据选择正确的空间参考非常重要。
ArcGIS Engine提供了一系列对象供开发者管理GIS系统的坐标系统。对大部分开发者而言了解ProjectedCoordinateSystem, GeographicCoordinateSystem, SpatialReference Environment这三个组件类是非常有必要的,对于高级开发者而言,可能需要自定义坐标系统可以使用这些对象Projection,Datum,AngularUnit,Spheriod,PrimeMeridian和GeoTransformation等。
2.5.2修改空间参考
以下代码片段演示了如何改变一个图层的空间参考。
///
/// 改变图层的空间参考
///
///
///
private void ChangeLayerRef(IFeatureLayer pFeatureLayer, int gcsType)
{
try
{
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
//QI到IGeoDataset
IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
//QI到IGeoDatasetSchemaEdit
IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
{
//创建SpatialReferenceEnvironmentClass对象
ISpatialReferenceFactory2 pSpaRefFactory = new SpatialReferenceEnvironmentClass();
//创建地理坐标系对象
IGeographicCoordinateSystem pNewGeoSys =
pSpaRefFactory.CreateGeographicCoordinateSystem(gcsType);//4214代表Beijing1954
pGeoDatasetSchemaEdit.AlterSpatialReference(pNewGeoSys);
}
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, MessageBoxIcon.Information);
\提示\MessageBoxButtons.OK,
}
}
2.6开发野外测量点构建一个Polygon几何要素程序
2.6.1功能情景描述
现有一存储为*.txt格式文本文件存储野外测量几个建筑物的坐标信息,如图所示,我们需要通过开发一个功能能够读取这些这些坐标信息并根据坐标点建筑物属性来构建建筑物,并
创建成一个ShapeFile加载到MapControl上。