我使用文本框输入投影名称(例如: WGS_1984_UTM_Zone_37N),并希望使用arcobjects(vb.net/C#)获取空间参考详细信息。如何做到这一点呢?敬请澄清。
发布于 2016-08-03 03:49:02
提供TextBox来输入投影名称不是一个好主意,因为它将允许用户输入任何值,而这些值可能不是您想要的格式。例如"WGS84_UTM_zone_37N“或”WGS1984UTMZone 37N“等都是有效的值,但是,您将有很多麻烦来识别空间参考用户正在寻找的。
我建议您提供一个下拉列表,并使用投影系统内容之一,如esriSRProjCSType和/或esriSRGeoCSType,并填充下拉列表。
如果你仍然需要它,你必须创建一个所有spatialreference的实例,直到你找到一个与文本框中输入的值相匹配的值。
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;
}
}此方法仅适用于投影坐标系,您必须对地理坐标系执行类似的操作。
https://stackoverflow.com/questions/38717809
复制相似问题