Map Control을 이용한 Application 구현시 Map Control 또는 Map을 MXD 파일로 저장하는 코드이다.
만약 IMap을 MXD로 저장하고 싶다면 아래 코드에서 IMapControlDefault targetMapControl ==> IMap targetMap으로 변경해 주면 된다.
[code c#]
public bool SaveMapToMxd(IMapControlDefault targetMapControl, string fileName)
{
bool bSuccess = false;
if (string.IsNullOrEmpty(fileName)) return bSuccess;
IMapDocument ipMapDocument = new MapDocumentClass();
if (ipMapDocument.get_IsReadOnly(fileName))
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(ipMapDocument);
return bSuccess;
}
try
{
if (System.IO.File.Exists(fileName))
{
ipMapDocument.Open(fileName, string.Empty);
}
else
{
ipMapDocument.New(fileName);
}
IMxdContents ipMxdContents = (IMxdContents)targetMapControl;
ipMapDocument.ReplaceContents(ipMxdContents);
ipMapDocument.SetActiveView(targetMapControl.ActiveView);
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
//bUseRelativePaths = true, bCreateThumnbail = false
ipMapDocument.Save(true, false);
ipMapDocument.Close();
bSuccess = true;
}
catch (Exception Ex)
{
System.Diagnostics.Debug.WriteLine(string.Format("MXD 저장오류 : {0}", Ex.Message));
}
finally
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(ipMapDocument);
}
System.Windows.Forms.Cursor.Current = Cursors.Default;
return bSuccess;
}
[/code]
댓글 없음:
댓글 쓰기