투영 이름 (예 : WGS_1984_UTM_Zone_37N)을 입력하기 위해 텍스트 상자를 사용하고 있으며 arcobjects (vb.net/C#)를 사용하여 공간 참조 세부 정보를 가져 오려고합니다. 이 일을 성취하는 방법? 친절하게 설명합니다.arcobjects를 사용하여 spatialreference를 이름으로 얻는 방법은 무엇입니까?
0
A
답변
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 시스템과 유사해야합니다.