ArcEngine主要功能源码 联系客服

发布时间 : 星期日 文章ArcEngine主要功能源码更新完毕开始阅读f8f158ed1ed9ad51f11df256

pMapDocument.Close();

MessageBox.Show(\保存地图文档成功!\); }

catch (Exception ex) {

MessageBox.Show(ex.Message); }

//ICommand command = new ControlsSaveAsDocCommandClass(); //command.OnCreate(mainMapControl.Object); //command.OnClick(); }

//地图另存为

private void btnSaveAsMap_Click(object sender, EventArgs e) {

try {

SaveFileDialog pSaveFileDialog = new SaveFileDialog(); pSaveFileDialog.Title = \另存为\;

pSaveFileDialog.OverwritePrompt = true;

pSaveFileDialog.Filter = \文档(*.mxd)|*.mxd|ArcMap模板(*.mxt)|*.mxt\;

pSaveFileDialog.RestoreDirectory = true;

if (pSaveFileDialog.ShowDialog() == DialogResult.OK) {

string sFilePath = pSaveFileDialog.FileName;

IMapDocument pMapDocument = new MapDocumentClass(); pMapDocument.New(sFilePath);

pMapDocument.ReplaceContents(mainMapControl.Map as IMxdContents);

pMapDocument.Save(true, true); pMapDocument.Close(); } }

catch (Exception ex) {

MessageBox.Show(ex.Message);

} }

#endregion

#region 地图浏览 //拉框放大

string pMouseOperate = null;

private void btnZoomIn_Click(object sender, EventArgs e) {

mainMapControl.CurrentTool = null; pMouseOperate = \; mainMapControl.MousePointer = esriControlsMousePointer.esriPointerZoomIn; }

//拉框缩小

private void btnZoomOut_Click(object sender, EventArgs e) {

mainMapControl.CurrentTool = null; pMouseOperate = \; mainMapControl.MousePointer = esriControlsMousePointer.esriPointerZoomOut;

#region 自定义拉框缩小

//IEnvelope trackExtent, currentExtent, NewIEN = null; //currentExtent = mainMapControl.Extent;

//trackExtent = mainMapControl.TrackRectangle();

//double dXmin = 0, dYmin = 0, dXmax = 0, dYmax = 0, dHeight = 0, dWidth = 0;

//dWidth = currentExtent.Width * (currentExtent.Width / trackExtent.Width);

//dHeight = currentExtent.Height * (currentExtent.Height / trackExtent.Height);

//dXmin = currentExtent.XMin - ((trackExtent.XMin - currentExtent.XMin) * (currentExtent.Width / trackExtent.Width)); //dYmin = currentExtent.YMin - ((trackExtent.YMin -

currentExtent.YMin) * (currentExtent.Height / trackExtent.Height)); //dXmax = dXmin + dWidth; //dYmax = dYmin + dHeight;

//NewIEN = new EnvelopeClass();

//NewIEN.PutCoords(dXmin, dYmin, dXmax, dYmax); //mainMapControl.Extent = NewIEN; #endregion }

//逐级放大

private void btnZoomInStep_Click(object sender, EventArgs e) {

IEnvelope pEnvelope;

pEnvelope = mainMapControl.Extent; pEnvelope.Expand(0.5, 0.5, true); //这里设置放大为2倍,可以根据需要具体设置

mainMapControl.Extent = pEnvelope; mainMapControl.ActiveView.Refresh(); }

//逐级缩小

private void btnZoomOutStep_Click(object sender, EventArgs e) {

//IEnvelope pEnvelope;

//pEnvelope = mainMapControl.Extent; //pEnvelope.Expand(1.5, 1.5, true); //mainMapControl.Extent = pEnvelope; //mainMapControl.ActiveView.Refresh();

IActiveView pActiveView = mainMapControl.ActiveView; IPoint centerPoint = new PointClass();

centerPoint.PutCoords((pActiveView.Extent.XMin + pActiveView.Extent.XMax) / 2, (pActiveView.Extent.YMax + pActiveView.Extent.YMin) / 2);

IEnvelope envlope = pActiveView.Extent;

envlope.Expand(1.5, 1.5, true); //和放大的区别在于Expand函数的参数不同

pActiveView.Extent.CenterAt(centerPoint); pActiveView.Extent = envlope; pActiveView.Refresh(); }

//漫游

private void btnPan_Click(object sender, EventArgs e) {

mainMapControl.CurrentTool = null; pMouseOperate = \;

mainMapControl.MousePointer = esriControlsMousePointer.esriPointerPan; }

IExtentStack pExtentStack; //前一视图

private void btnFrontView_Click(object sender, EventArgs e) {

pExtentStack = mainMapControl.ActiveView.ExtentStack; //判断是否可以回到前一视图,第一个视图没有前一视图 if (pExtentStack.CanUndo()) {

pExtentStack.Undo();

btnForWardView.Enabled = true; if (!pExtentStack.CanUndo()) {

btnFrontView.Enabled = false; } }

mainMapControl.ActiveView.Refresh(); }

//后一视图

private void btnForWardView_Click(object sender, EventArgs e) {

pExtentStack = mainMapControl.ActiveView.ExtentStack; //判断是否可以回到后一视图,最后一个视图没有后一视图 if (pExtentStack.CanRedo()) {

pExtentStack.Redo();

btnFrontView.Enabled = true; if (!pExtentStack.CanRedo()) {