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;
}
}
此方法僅適用於投影座標系,您必須對地理座標系執行類似操作。