【问题标题】:How to get the spatialreference by name using arcobjects?如何使用 arcobjects 按名称获取空间参考?
【发布时间】:2016-12-07 15:40:34
【问题描述】:

我正在使用文本框输入投影名称(例如:WGS_1984_UTM_Zone_37N),我想使用 arcobjects(vb.net/C#) 获取该空间参考详细信息。如何做到这一点?请澄清。

【问题讨论】:

    标签: c# vb.net arcgis arcmap arcobjects


    【解决方案1】:

    提供文本框来输入投影名称是一个坏主意,因为它允许用户输入任何值,可能不是您想要的格式。即“WGS84_UTM_zone_37N”或“WGS 1984 UTM Zone 37N”等都是有效值,但您很难确定用户正在寻找哪个空间参考。

    我建议您改为提供一个下拉列表并使用投影系统内容之一,如 esriSRProjCSType 和/或 esriSRGeoCSType,并填充下拉列表。

    如果您仍然需要它,则必须创建所有空间参考的实例,直到找到与文本框中输入的值匹配为止。

    private ISpatialReference GetSpatialReference(string srName){
        var srProjCSArray = Enum.GetValues(typeof(esriSRProjCSType));
        var srEnvirnonment = new SpatialReferenceEnvironment();
    
        foreach (var item in srProjCSArray)
        {
             var sr = srEnvirnonment.CreateProjectedCoordinateSystem((int)item);
             if(sr.Name == srName)
                 return sr;
        }
    }
    

    此方法仅适用于投影坐标系,您必须对地理坐标系进行类似操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-15
      • 2014-09-27
      • 1970-01-01
      • 2010-09-28
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      相关资源
      最近更新 更多