Click or drag to resize
XDL

XRPFToc Class

RPF TOC(Table Of Contents) 파일을 읽어서 정보를 추출하는 기능을 정의한다. RPF는 Raster Product Format을 지칭하는 용어로서, CADRG, CIB등을 의미한다. RPF는 지구를 Zone과 Scale로 구분된 수많은 이미지파일들로 Tiling되어 구성되어 있다. RPF는 보통 TOC파일이 존재하며 TOC파일 내에는 여러개의 파일 정보를 포함한다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDL.NIOXRPFToc

Namespace:  Pixoneer.NXDL.NIO
Assembly:  NXDLio (in NXDLio.dll) Version: 1.2.817.72
Syntax
C#
public class XRPFToc : IDisposable

The XRPFToc type exposes the following members.

Constructors
  NameDescription
Public methodXRPFToc
XRPFToc 클래스의 기본 생성자로서, 멤버변수들을 초기화 시킨다.
Top
Properties
  NameDescription
Public propertyBoundaryRecSize
Boundary record 의 수를 얻는다.
Public propertyRPFProductType
RPF product type을 얻는다.
Public propertyScale
RPF scale을 얻는다.
Top
Methods
  NameDescription
Public methodGetBoundaryRecord
입력 인덱스에 해당하는 XRPCBoundaryRecord객체를 얻는다. toc파일 안에는 보통 1개 이상의 Boundary Rectangle Record 정보가 포함되어 있다. 이객체로 부터 Boundary Rectangle Record에 대한 정보를 얻을 수 있다.
Public methodGetFrameFileName(Int32)
입력 인덱스에 해당하는 Frame파일 이름을 얻는다.
Public methodGetFrameFileName(Int32, Int32)
TOC파일에 구성된 여러개의 파일 중 row/column에 해당하는 파일 이름을 반환한다. 여기서 파일이라함은 Frame이라 할 수 있는데 Tile을 구성하는 하나의 요소라 할 수 있다.
Public methodGetFrameFileName(Int32, Int32, Int32)
TOC파일에 구성된 여러개의 파일 중 row/column에 해당하는 파일 이름을 반환한다. 여기서 파일이라함은 Frame이라 할 수 있는데 Tile을 구성하는 하나의 요소라 할 수 있다.
Public methodGetZone
입력된 인덱스에 대한 XRPCBoundaryRecord상의 Zone을 직접 얻는다.
Public methodLoadFile
RPF TOC을 파일을 로딩한다.
Top
Remarks

Examples
toc 파일을 읽어 RPF 형식이 CADRG인 경우 축척에 따라 분기한다.
using Pixoneer.NXDL.NIO;
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "TOC file(*.TOC)|*.TOC";
openFileDialog.RestoreDirectory = true;

if (openFileDialog.ShowDialog() != DialogResult.OK) return;

XRPFToc toc = new XRPFToc();
if (toc.LoadFile(openFileDialog.FileName))
{
    if (toc.RPFProductType == eXRPFProductType.CADRG)
    {
        if (toc.Scale == eXRPFScale.S5M)
        {
        }
        else if (toc.Scale == eXRPFScale.S2M)
        {
        }
        else if (toc.Scale == eXRPFScale.S1M)
        {
        }
        else if (toc.Scale == eXRPFScale.S500K)
        {
        }
        else if (toc.Scale == eXRPFScale.S250K)
        {
        }
        else if (toc.Scale == eXRPFScale.S100K)
        {
        }
        else if (toc.Scale == eXRPFScale.S50K)
        {
        }
    }
    else if (toc.RPFProductType == eXRPFProductType.CIB)
    {
    }
}
See Also