目录
1.Intro
消失了一段时间,被拉去搞C/S系统,可算是发布了,测试了半把个月,总算是有了1个Bug... 另一个小伙伴也被调走了,心里苦啊。所以分享部分的通用库和奇技淫巧,不定期更新。
2.Environment
Environment:Windows 7及以上
Language:C#
IDE:Visual Studio 2012
SDK:ArcGIS Engine 10.2
3.Source
[Guid("ddbdc19a-82f9-4caa-9c65-d38589704de2")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("Libs_GIS.Document_Operate")]
public sealed class Document_Operate
{
#region 调用 ArcGIS 命令对文档进行操作
/// <summary>
/// 创建新MXD文档
/// </summary>
/// <param name="axMapControl">地图对象</param>
public static void New_MXD_Document(AxMapControl axMapControl)
{
ICommand command = new CreateNewDocument();
command.OnCreate(axMapControl.Object);
command.OnClick();
}
/// <summary>
/// 打开MXD文档
/// </summary>
/// <param name="axMapControl">地图对象</param>
public static void Open_MXD_Document(AxMapControl axMapControl)
{
ICommand command = new ControlsOpenDocCommandClass();
command.OnCreate(axMapControl.Object);
command.OnClick();
}
/// <summary>
/// 保存MXD文档
/// </summary>
/// <param name="axMapControl">地图对象</param>
public static void Save_MXD_Document(AxMapControl axMapControl)
{
string mapDocument_Name = axMapControl.DocumentFilename.ToString();
if (mapDocument_Name == string.Empty)
MessageBox.Show("请另存为新文档!");
if (axMapControl.CheckMxFile(mapDocument_Name))
{
IMapDocument mapDoc = new MapDocumentClass();
mapDoc.Open(mapDocument_Name, string.Empty);
if (mapDoc.get_IsReadOnly(mapDocument_Name))
{
MessageBox.Show("地图文档是只读的!");
mapDoc.Close();
return;
}
mapDoc.ReplaceContents((IMxdContents)axMapControl.Map);
mapDoc.Save(mapDoc.UsesRelativePaths, false);
mapDoc.Close();
}
}
/// <summary>
/// 另存为MXD文档
/// </summary>
/// <param name="axMapControl">地图对象</param>
public static void SaveAs_MXD_Document(AxMapControl axMapControl)
{
ICommand command = new ControlsSaveAsDocCommandClass();
command.OnCreate(axMapControl.Object);
command.OnClick();
}
#endregion
}
4.Conclusion
不多比比,直接上代码,都在注释里了兄弟。