2016-08-02 68 views

回答

0

提供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; 
    } 
} 

此方法僅適用於投影座標系,您必須對地理座標系執行類似操作。

相關問題