【发布时间】:2016-12-07 15:40:34
【问题描述】:
我正在使用文本框输入投影名称(例如:WGS_1984_UTM_Zone_37N),我想使用 arcobjects(vb.net/C#) 获取该空间参考详细信息。如何做到这一点?请澄清。
【问题讨论】:
标签: c# vb.net arcgis arcmap arcobjects
我正在使用文本框输入投影名称(例如:WGS_1984_UTM_Zone_37N),我想使用 arcobjects(vb.net/C#) 获取该空间参考详细信息。如何做到这一点?请澄清。
【问题讨论】:
标签: c# vb.net arcgis arcmap arcobjects
提供文本框来输入投影名称是一个坏主意,因为它允许用户输入任何值,可能不是您想要的格式。即“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;
}
}
此方法仅适用于投影坐标系,您必须对地理坐标系进行类似操作。
【讨论】: