如何利用ArcEngine创建坐标系统代码
- 组件式GIS
- 2008-08-22
- 98热度
- 0评论
导师给我们布置了一道实习作业,要求利用ArcEngine创建自己的坐标系统,这样既结合课本理论知识,又达到了ArcEngine的学习,下面我把我 的方法张贴如下:
//定义坐标的函数
public ISpatialReference createProjection()
{
try
{
ISpatialReferenceFactory3 spatialReferenceFactory = new SpatialReferenceEnvironmentClass();
IProjection projection = spatialReferenceFactory.CreateProjection((int)esriSRProjectionType.esriSRProjection_LambertConformalConic);
ILinearUnit unit = spatialReferenceFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter) as ILinearUnit;
IParameter[] parameterArray = new IParameter[7];
parameterArray[0] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_FalseEasting);
parameterArray[0].Value = 0;
parameterArray[1] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_FalseNorthing);
parameterArray[1].Value = 0;
parameterArray[2] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_CentralMeridian);
parameterArray[2].Value = 86.59;
parameterArray[3] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_StandardParallel1);
parameterArray[3].Value = 30;
parameterArray[4] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_StandardParallel2);
parameterArray[4].Value = 60;
parameterArray[5] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_ScaleFactor);
parameterArray[5].Value = 1;
parameterArray[6] = spatialReferenceFactory.CreateParameter((int)esriSRParameterType.esriSRParameter_LatitudeOfOrigin);
parameterArray[6].Value = -0.64;
// Create a geographic coordinate system object
IGeographicCoordinateSystem geographicCoordinateSystem = spatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);
IProjectedCoordinateSystem projectedCoordinateSystem = new ProjectedCoordinateSystemClass();
IProjectedCoordinateSystemEdit projectedCoordinateSystemEdit = projectedCoordinateSystem as IProjectedCoordinateSystemEdit;
object name = "Asia_lambert";
object alias = "UTM";
object abbreviation = "TM";
object remarks = "his PCS is Asia_lambert";
object usage = "";
object geographicCoordinateSystemObject = geographicCoordinateSystem;
object projectedUnitObject = unit;
object projectionObject = projection;
object parametersObject = parameterArray;
projectedCoordinateSystemEdit.Define(ref name,
ref alias,
ref abbreviation,
ref remarks,
ref usage,
ref geographicCoordinateSystemObject,
ref projectedUnitObject,
ref projectionObject,
ref parametersObject
);
ISpatialReference pRef = projectedCoordinateSystem as ISpatialReference;
return pRef;
}
catch (Exception Excep)
{
MessageBox.Show("生成坐标投影系统出现异常,具体异常如下:n" + Excep.ToString());
return null;
}
}