首页 > 代码库 > ArcGIS Engine中空间参照(地理坐标)相关方法总结
ArcGIS Engine中空间参照(地理坐标)相关方法总结
1.创建空间参考
[csharp] view plaincopyprint?
- /// <summary>
- /// 根据prj文件创建空间参考
- /// </summary>
- /// <param name="strProFile">空间参照文件</param>
- /// <returns></returns>
- public static ISpatialReference CreateSpatialReference(string strProFile)
- {
- ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
- ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(strProFile);
- return pSpatialReference;
- }
[csharp] view plaincopyprint?
- /// <summary>
- /// 创建地理坐标系
- /// </summary>
- /// <param name="gcType">esriSRProjCS4Type</param>
- /// <returns></returns>
- public static ISpatialReference CreateGeographicCoordinate(esriSRProjCS4Type gcsType)
- {
- ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
- ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)gcsType);
- return pSpatialReference;
- }
[csharp] view plaincopyprint?
- /// <summary>
- /// 创建投影坐标系
- /// </summary>
- /// <param name="pcType">esriSRProjCS4Type</param>
- /// <returns></returns>
- public static ISpatialReference CreateProjectedCoordinate(esriSRProjCS4Type pcsType)
- {
- ISpatialReferenceFactory2 pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
- ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateProjectedCoordinateSystem((int)pcsType);
- return pSpatialReference;
- }
[csharp] view plaincopyprint?
- /// <summary>
- /// 获取空投影
- /// </summary>
- /// <returns></returns>
- public static ISpatialReference CreateUnKnownSpatialReference()
- {
- ISpatialReference pSpatialReference = new UnknownCoordinateSystemClass();
- pSpatialReference.SetDomain(0, 99999999, 0, 99999999);//设置空间范围
- return pSpatialReference;
- }
2.获取空间参考
[csharp] view plaincopyprint?
- /// <summary>
- /// 获取要素集空间参考
- /// </summary>
- /// <param name="pFeatureDataset">要素集</param>
- /// <returns></returns>
- public static ISpatialReference GetSpatialReference(IFeatureDataset pFeatureDataset)
- {
- IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;
- ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;
- return pSpatialReference;
- }
[csharp] view plaincopyprint?
- /// <summary>
- /// 获取要素层空间参考
- /// </summary>
- /// <param name="pFeatureLayer">要素层</param>
- /// <returns></returns>
- public static ISpatialReference GetSpatialReferenc(IFeatureLayer pFeatureLayer)
- {IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
- IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
- ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;
- return pSpatialReference;
- }
[csharp] view plaincopyprint?
- /// <summary>
- /// 获取要素类空间参考
- /// </summary>
- /// <param name="pFeatureClass">要素类</param>
- /// <returns></returns>
- public static ISpatialReference GetSpatialReference(IFeatureClass pFeatureClass)
- {
- IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
- ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;
- return pSpatialReference;
- }
3.修改空间参考
[csharp] view plaincopyprint?
- /// <summary>
- /// 修改要素集空间参考
- /// </summary>
- /// <param name="pFeatureDataset">要素集</param>
- /// <param name="pSpatialReference">新空间参考</param>
- public static void AlterSpatialReference(IFeatureDataset pFeatureDataset, ISpatialReference pSpatialReference)
- {
- IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;
- IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
- if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
- pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);
- }
[csharp] view plaincopyprint?
- /// <summary>
- /// 修改要素类空间参考
- /// </summary>
- /// <param name="pFeatureClass">要素类</param>
- /// <param name="pSpatialReference">新空间参考</param>
- public static void AlterSpatialReference(IFeatureClass pFeatureClass, ISpatialReference pSpatialReference)
- {
- IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
- IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
- if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
- pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);
- }
ArcGIS Engine中空间参照(地理坐标)相关方法总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。