0
我正在使用文本框输入投影名称(例如:WGS_1984_UTM_Zone_37N),我想使用arcobjects(vb.net/C#)获取空间参考详细信息。如何做到这一点?请澄清。如何使用arcobjects按名称获取空间参考?
我正在使用文本框输入投影名称(例如:WGS_1984_UTM_Zone_37N),我想使用arcobjects(vb.net/C#)获取空间参考详细信息。如何做到这一点?请澄清。如何使用arcobjects按名称获取空间参考?
提供TextBox输入投影名称是一个坏主意,因为它可以让用户输入任何值,而这些值可能不是您想要的格式。即“WGS84_UTM_zone_37N”或“WGS 1984 UTM Zone 37N”等都是有效值,但是,您将很难确定哪个Spatial Reference用户正在查找。
我建议您提供一个下拉列表,并使用投影系统的其中一个像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;
}
}
此方法仅适用于投影坐标系,您必须对地理坐标系执行类似操作。