打开地图Word下载.docx
- 文档编号:16216847
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:13
- 大小:19.03KB
打开地图Word下载.docx
《打开地图Word下载.docx》由会员分享,可在线阅读,更多相关《打开地图Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
}
DialogResult.Yes)
//
btnSaveMxd_Click(null,null
);
//调用保存文档方法
OpenFileDialog
openFileDialog=
new
OpenFileDialog();
string
filename=
string.Empty;
openFileDialog.Title=
OpenMapDocument"
;
openFileDialog.Filter=
MapDocuments(*.mxd;
*.pmf)|*.mxd;
*.pmf"
openFileDialog.InitialDirectory=@"
C:
\Users\TJ\Desktop"
//默认路径
openFileDialog.ShowHelp=true;
//现实帮助按钮
有对应的事件“HelpRequest”
(openFileDialog.ShowDialog()==
DialogResult.OK)
filename=openFileDialog.FileName;
(axMapControl1.CheckMxFile(filename))
axMapControl1.LoadMxFile(filename);
设置MapControl显示范围至数据的全局范围
axMapControl1.Extent=axMapControl1.FullExtent;
#endregion
自定义工具类,实现添加图名,比例尺,指北针
-------------------------添加图名------------------------------
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingESRI.ArcGIS.Display;
usingESRI.ArcGIS.SystemUI;
usingESRI.ArcGIS.Carto;
usingESRI.ArcGIS.esriSystem;
usingESRI.ArcGIS.Output;
usingESRI.ArcGIS.Controls;
usingESRI.ArcGIS.Geometry;
usingESRI.ArcGIS.ADF.BaseClasses;
usingstdole;
//自定义工具类,实现添加图名功能
namespaceWindowsApplication1
classaddPageLayoutName:
BaseTool
{
publicForm1formTemp;
TextBoxtextbox;
AxPageLayoutControlaxLayoutControl;
IPointpPoint;
//doublexMap,yMap;
publicstaticdoublexMap;
publicstaticdoubleyMap;
publicoverridevoidOnMouseDown(intButton,intShift,intX,intY)
if(Button==1)
pPoint=formTemp.returnPageLayoutControl().ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);
xMap=pPoint.X;
yMap=pPoint.Y;
formTemp.returnTextbox1().Location=newSystem.Drawing.Point(X,Y);
formTemp.returnTextbox1().Visible=true;
formTemp.returnTextbox1().Focus();
formTemp.returnTextbox1().Text="
请在此输入图名"
publicoverridevoidOnCreate(objecthook)
axLayoutControl=hookasAxPageLayoutControl;
publicvoidAddTextElement(AxPageLayoutControlPageLayoutControl,doublex,doubley,stringtextName)
IPageLayoutpPageLayout;
IActiveViewpAV;
IGraphicsContainerpGraphicsContainer;
ITextElementpTextElement;
IElementpElement;
ITextSymbolpTextSymbol;
IRgbColorpColor;
pPageLayout=PageLayoutControl.PageLayout;
pAV=(IActiveView)pPageLayout;
pGraphicsContainer=(IGraphicsContainer)pPageLayout;
pTextElement=newTextElementClass();
IFontDisppFont=newStdFontClass()asIFontDisp;
pFont.Bold=true;
pFont.Name="
宋体"
pFont.Size=13;
pColor=newRgbColorClass();
pColor.Red=255;
pTextSymbol=newTextSymbolClass();
pTextSymbol.Color=(IColor)pColor;
pTextSymbol.Font=pFont;
pTextElement.Text=textName;
pTextElement.Symbol=pTextSymbol;
pPoint=newPointClass();
pPoint.X=x;
pPoint.Y=y;
pElement=(IElement)pTextElement;
pElement.Geometry=(IGeometry)pPoint;
pGraphicsContainer.AddElement(pElement,0);
pAV.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);
}
另外附加其它(添加比例尺,指北针的代码,,,也是通过自定义工具类实现的,,,,下列只给出自定义工具类的代码!
)
---------------------------------------添加指北针-------------------------------------------
sealedclassaddNorthArrow:
BaseTool
AxPageLayoutControlaxPageLayout=null;
IPointpPoint;
boolbInuse;
INewEnvelopeFeedbackpNewEnvelopeFeedback=null;
publicaddNorthArrow()
base.m_caption="
添加指北针"
base.m_toolTip="
base.m_category="
customCommands"
base.m_message="
base.m_deactivate=true;
publicoverridevoidOnCreate(objecthook)
axPageLayout=(AxPageLayoutControl)hook;
publicoverridevoidOnMouseDown(intButton,intShift,intX,intY)
pPoint=axPageLayout.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);
bInuse=true;
publicoverridevoidOnMouseMove(intButton,intShift,intX,intY)
if(bInuse==false)
if(pNewEnvelopeFeedback==null)
pNewEnvelopeFeedback=newNewEnvelopeFeedbackClass();
pNewEnvelopeFeedback.Display=axPageLayout.ActiveView.ScreenDisplay;
pNewEnvelopeFeedback.Start(pPoint);
pNewEnvelopeFeedback.MoveTo(axPageLayout.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y));
publicoverridevoidOnMouseUp(intButton,intShift,intX,intY)
pNewEnvelopeFeedback=null;
bInuse=false;
IEnvelopepEnvelope=pNewEnvelopeFeedback.Stop();
if((pEnvelope.IsEmpty)||(pEnvelope.Width==0)||(pEnvelope.Height==0))
addNorthArrowFormnorthArrow=newaddNorthArrowForm();
IStyleGalleryItempStyleGalleryItemTemp=Form1.pStyleGalleryItem;
if(pStyleGalleryItemTemp==null)
IMapFramepMapframe=axPageLayout.ActiveView.GraphicsContainer.FindFrame(axPageLayout.ActiveView.FocusMap)asIMapFrame;
IMapSurroundFramepMapSurroundFrame=newMapSurroundFrameClass();
pMapSurroundFrame.MapFrame=pMapframe;
pMapSurroundFrame.MapSurround=(IMapSurround)pStyleGalleryItemTemp.Item;
//在pageLayout中根据名称查要Element,找到之后删除已经存在的指北针
IElementpElement=axPageLayout.FindElementByName("
NorthArrows"
if(pElement!
=null)
axPageLayout.ActiveView.GraphicsContainer.DeleteElement(pElement);
//删除已经存在的指北针
pElement=(IElement)pMapSurroundFrame;
pElement.Geometry=(IGeometry)pEnvelope;
axPageLayout.ActiveView.GraphicsContainer.AddElement(pElement,0);
axPageLayout.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);
----------------------------------------添加比例尺(ScaleBars)-----------------------------------
sealedclassaddScaleBar:
//----------------------------------------------------------
//发现的重大问题,如果用IHookHelper,就会出现问题,用AxPageLayoutControl则不会出现问题,以后注意
//privateIHookHelperpHookHelper=null;
privateAxPageLayoutControlaxPagelayoutControl=null;
privateIPointpPoint;
privateINewEnvelopeFeedbackpNewEnvelopeFeedback;
privateboolbInuse;
publicaddScaleBar()
base.m_caption="
ScaleBar"
myCustomCommands(C#)"
Addascalebarmapsurround"
base.m_name="
myCustomCommands(C#)_ScaleBar"
Addascalebar"
//pHookHelper.Hook=hook;
axPagelayoutControl=hookasAxPageLayoutControl;
pPoint=axPagelayoutControl.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);
publicoverridevoidOnMouseMove(intButton,intShift,intX,intY)
return;
pNewEnvelopeFeedback=newNewEnvelopeFeedbackCla
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 打开 地图