2009년 12월 7일 월요일

[ArcObjects]Open Map From Mxd File

ArcObjects에서 MXD(ArcMap Document File) 파일로부터 Map을 가져오는 코드입니다.

Mxd 파일은 여러 DataFrame을 저장할 수 있으므로 mapIndex를 지정(기본값=0)해야 합니다.

[code c#]
public bool OpenMapFromMxd(string fileName, int mapIndex, out IMap outMap, out IPageLayout outPageLayout)
{
    outMap = null;
    outPageLayout = null;

    if (string.IsNullOrEmpty(fileName)) return false;

    bool ok = false;

    IMapDocument ipMapDocument = new MapDocumentClass();

    if (ipMapDocument.get_IsMapDocument(fileName))
    {
        ipMapDocument.Open(fileName, string.Empty);

        int mapCount = ipMapDocument.MapCount;

        if (mapIndex >= mapCount) mapIndex = 0;

        outMap = ipMapDocument.get_Map(mapIndex);

        outPageLayout = ipMapDocument.PageLayout;
      
        ipMapDocument.Close();

        ok = true;
    }

    System.Runtime.InteropServices.Marshal.ReleaseComObject(ipMapDocument);

    return ok;
}
[/code]