2016-08-02 8 views

답변

0

투영 이름을 입력하기 위해 TextBox를 제공하면 사용자가 원하는 형식이 아닌 값을 입력 할 수 있으므로 바람직하지 않습니다. 즉 "WGS84_UTM_zone_37N"또는 "WGS 1984 UTM Zone 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; 
    } 
} 

이 방법은 Projected Coordinate 시스템에서만 작동합니다.이 방법은 Geographic Coordinate 시스템과 유사해야합니다.