大家好,又见面了,我是你们的朋友全栈君。
ArcGIS二次开发基础教程(03):保存文档和导出地图
保存文档
- 保存:
//这里的path为全局变量 在打开文件获添加数据时赋值原路径
//判断打开文件是否为mxd文件 是则保存 不是则另存为
if(System.IO.File.Exists(path.Remove(path.IndexOf('.')) + ".mxd"))
{
//对于已打开的mxd文档保存在原路径
//获取mapcontrol中的地图数据
IMXDContexts context = axMapControl.Map as IMXDContexts;
IMapDocument mapDocumnet = new MapDocumnetClass();
mapDocument.Open(path);
mapDocument.ReplaceContexts(context);
mapDocument.Save();
}
else
{
SaveAs();
}
- 另存为
void SaveAs()
{
//没有mxd文档的新建一个
saveFileDialog.Title = "保存文件";
saveFileDialog.Filter = "ArcMap Document(*.mxd)|*.mxd";
if(saveFileDialog.ShowDialog()==DialogResult.OK)
{
IMXDContexts context = axMapControl.Map as IMXDContexts;
IMapDocument mapDocumnet = new MapDocumnetClass();
mapDocument.New(path);
mapDocument.ReplaceContexts(context);
mapDocument.Save();
}
}
导出地图
//将mapcontrol的显示范围导出为图片
saveFileDialog.Title = "导出图片";
//还有其他图片格式同理
saveFileDialog.Filter = "JPEG(*.jpg)|*.jpg|PNG(*.png)|*.png|PDF(*.pdf)|*.pdf|BMP(*.bmp)|*.bmp|TIFF(*.tif)|*.tif";
if(saveFileDialog.ShowDialog()==DialogResult.OK)
{
IExport export = new ExportAllClass();
string path = saveFileDialog.FileName;
string extension = System.IO.Path.GetExtenion(path).Replace(".","").ToLower();
switch(extension)
{
case "jpg":
export = new ExportJPEGClass();
break;
case "png":
export = new ExportPNGClass();
break;
case "pdf":
export = new ExportPDFClass();
break;
case "bmp":
export = new ExportBMPClass();
break;
case "tif":
export = new ExportTIFFClass();
break;
default:
MessageBox.Show("Error");
return;
}
if(ExportImage(export,axMapConrol1.ActiveView,fileName))
{
MessageBox.Show("Succeed");
}
else
{
MessageBox.Show("Error");
}
}
//这里是参考的帮助文档
bool ExportImage(IExport export,IActiveView activeView,string fileName)
{
export.ExportFileName = fileName;
// Microsoft Windows default DPI resolution
export.Resolution = 96;
// mapcontrol的显示范围
tagRECT exportRECT = activeView.ExportFrame;
IEnvelope envelope = new EnvelopeClass();
envelope.PutCoords(exportRECT.left, exportRECT.top, exportRECT.right, exportRECT.bottom);
export.PixelBounds = envelope;
Int32 hDC = export.StartExporting();
activeView.Output(hDC, (Int16)export.Resolution, ref exportRECT, null, null);
// Finish writing the export file and cleanup any intermediate files
export.FinishExporting();
export.Cleanup();
return true;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163431.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...