zoukankan      html  css  js  c++  java
  • ArcGIS Engine中空间参照(地理坐标)相关方法总结转

    ArcGIS Engine中空间参照(地理坐标)相关方法总结

    来自:http://blog.csdn.net/u011170962/article/details/38776101

    1.创建空间参考

    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 根据prj文件创建空间参考  
    3. /// </summary>  
    4. /// <param name="strProFile">空间参照文件</param>  
    5. /// <returns></returns>  
    6. public static ISpatialReference CreateSpatialReference(string strProFile)  
    7. {  
    8.     ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();  
    9.     ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(strProFile);  
    10.     return pSpatialReference;             
    11. }  
    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 创建地理坐标系  
    3. /// </summary>  
    4. /// <param name="gcType">esriSRProjCS4Type</param>  
    5. /// <returns></returns>  
    6. public static ISpatialReference CreateGeographicCoordinate(esriSRProjCS4Type gcsType)  
    7. {  
    8.     ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();  
    9.     ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)gcsType);  
    10.     return pSpatialReference;  
    11. }  
    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 创建投影坐标系  
    3. /// </summary>  
    4. /// <param name="pcType">esriSRProjCS4Type</param>  
    5. /// <returns></returns>  
    6. public static ISpatialReference CreateProjectedCoordinate(esriSRProjCS4Type pcsType)  
    7. {  
    8.     ISpatialReferenceFactory2 pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();  
    9.     ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateProjectedCoordinateSystem((int)pcsType);  
    10.     return pSpatialReference;  
    11. }  
    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 获取空投影  
    3. /// </summary>  
    4. /// <returns></returns>  
    5. public static ISpatialReference CreateUnKnownSpatialReference()  
    6. {  
    7.     ISpatialReference pSpatialReference = new UnknownCoordinateSystemClass();  
    8.     pSpatialReference.SetDomain(0, 99999999, 0, 99999999);//设置空间范围  
    9.     return pSpatialReference;  
    10. }  

    2.获取空间参考

    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 获取要素集空间参考  
    3. /// </summary>  
    4. /// <param name="pFeatureDataset">要素集</param>  
    5. /// <returns></returns>  
    6. public static ISpatialReference GetSpatialReference(IFeatureDataset pFeatureDataset)  
    7. {  
    8.     IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;  
    9.     ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;  
    10.     return pSpatialReference;             
    11. }  
    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 获取要素层空间参考  
    3. /// </summary>  
    4. /// <param name="pFeatureLayer">要素层</param>  
    5. /// <returns></returns>  
    6. public static ISpatialReference GetSpatialReferenc(IFeatureLayer pFeatureLayer)  
    7. {IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;  
    8.     IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;  
    9.     ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;  
    10.     return pSpatialReference;             
    11. }  
    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 获取要素类空间参考  
    3. /// </summary>  
    4. /// <param name="pFeatureClass">要素类</param>  
    5. /// <returns></returns>  
    6. public static ISpatialReference GetSpatialReference(IFeatureClass pFeatureClass)  
    7. {  
    8.     IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;  
    9.     ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;  
    10.     return pSpatialReference;             
    11. }  

    3.修改空间参考

    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 修改要素集空间参考  
    3. /// </summary>  
    4. /// <param name="pFeatureDataset">要素集</param>  
    5. /// <param name="pSpatialReference">新空间参考</param>  
    6. public static void AlterSpatialReference(IFeatureDataset pFeatureDataset, ISpatialReference pSpatialReference)  
    7. {  
    8.     IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;  
    9.     IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;  
    10.     if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)  
    11.         pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);  
    12. }  
    [csharp] view plain copy
     
     print?
    1. /// <summary>  
    2. /// 修改要素类空间参考  
    3. /// </summary>  
    4. /// <param name="pFeatureClass">要素类</param>  
    5. /// <param name="pSpatialReference">新空间参考</param>  
    6. public static void AlterSpatialReference(IFeatureClass pFeatureClass, ISpatialReference pSpatialReference)  
    7. {  
    8.     IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;  
    9.     IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;  
    10.     if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)  
    11.         pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);  
  • 相关阅读:
    深入了解JVMzz
    正则表达式和Java编程语言1zz
    全世界所有程序员都会犯的错误zz
    C++完美实现Singleton模式zz
    Visual C++6.0 API函数操作技巧集zz光标和鼠标操作
    用next_permutation()生成r组合数,兼VC7的一个bugzz
    基于逆向最大化词表中文分词法zz
    c#.net常用函数列表
    Windows多线程多任务设计初步zz
    在Linux中实现内部进程通信
  • 原文地址:https://www.cnblogs.com/gisoracle/p/6920383.html
Copyright © 2011-2022 走看看