zoukankan      html  css  js  c++  java
  • Arcengine设置坐标系

    Arcengine设置坐标系

     

     

    ArcGIS Engine提供了一系列对象供开发者管理GIS系统的坐标系统。
    对大部分开发者而言了解ProjectedCoordinateSystem, GeographicCoordinateSystem, 
    SpatialReference Environment这三个组件类是非常有必要的,
    对于高级开发者而言,可能需要自定义坐标系统可以使用
    这些对象Projection,Datum,AngularUnit,Spheriod,PrimeMeridian和
    GeoTransformation等。
    1、ISpatialReference地理坐标系对象
    (空间参考的设置重要是指地理坐标系对象,设置好它后然后将它赋值给需要的对象)
    //创建地理坐标系对象
    ISpatialReferenceFactory spatialReferenceFactory = new SpatialReferenceEnvironmentClass();
    ISpatialReference spatialReference = spatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);

    2、改变空间参考
    IGeoDatasetSchemaEdit接口的AlterSpatialReference方法可以改变空间参考,在改变前先用CanAlterSpatialReference属性看其能否被改变
    pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);

    实例:
    /// <summary>
    /// 改变图层的空间参考
    /// </summary>
    /// <param name="pFeatureLayer">图层</param>
    /// <param name="pGeoType">空间参考类型</param>
    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, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    }

    3、空间坐标枚举
    esriSRGeoCSType
    esriSRProjCSType

    4.自定义坐标系

    用ArcMap定义好坐标系后导出成prj文件,再用ISpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile方法创建坐标系,可以正确使用。

  • 相关阅读:
    高职院校对口单招信息一类《专业技能》模拟试题(程序设计题)
    巧妙入侵家庭内网环境
    冰点还原忘记密码如何修改配置或卸载
    Windows 如何完整备份驱动
    如何创建自解压格式的压缩包 [ 每周小技巧 12月27日 ]
    CVE-2018-15982漏洞复现
    《内网下的自我修养》--- 基于交换机的常见攻击方式
    SQL基本注入演示
    Weblogic wls-wsat组件反序列化漏洞(CVE-2017-10271)
    通过Jenkins进行提权的一个思路
  • 原文地址:https://www.cnblogs.com/xianyin05/p/3086543.html
Copyright © 2011-2022 走看看