打开mxd文件
OpenFileDialog
axMapControl1.LoadMxFile(pFileName);
打开shp文件
IWorkspaceFactory pWorkspaceFactory = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(pFilePath, 0);
IFeatureWorkspace pFeatureWorkspace= new ShapefileWorkspaceFactory();
IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(pFileName);
pFeatureLayer = new FeatureLayer();
pFeatureLayer.FeatureClass = pFeatureClass;
pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
//ClearAllData();//删除所有已加载的数据
axMapControl2.Map.AddLayer(pFeatureLayer);
IFeatureWorkspace 接口用于访问和管理地理数据库中的要素的重要成分 -- 数据集
IFeatureWorkspace.OpenFeatureClass 方法打开 workspace 中任何已存在的要素类
IFeatureClass 用于访问控制要素类行为和属性的成员
IFeatureClass 接口是获取和设置要素类属性的主要接口
IFeatureLayer 接口的第一个属性 FeatureClass(读写,设置或者读取此 layer 的要素类)
把shp放入Shape工作空间——》通过OpenFeatureClass访问要素类——》 实例化FeatureLayer添加FeatureClass和Name 最后AddLayer
打开cad文件
把cad放入CadWorkspaceFactory工作空间——》通过OpenFeatureClass访问要素类——》 实例化FeatureLayer添加FeatureClass和Name 最后AddLayer
IWorkspaceFactory pWorkspaceFactory = new CadWorkspaceFactory();
保存文件
IMapDocument pMapDocument = new MapDocumentClass();
pMapDocument.New(sMxdFileName);
pMapDocument.ReplaceContents(axMapControl1.Map as IMxdContents);
pMapDocument.Save(pMapDocument.UsesRelativePaths, true);
拉框放大
Click事件
pMouseOperate = "ZoomIn"; 和改变鼠标状态
OnMouseDown事件
axMapControl1.TrackRectangle(); 创建橡皮条返回IEnvelope
IActiveView 接口的Extent属性与IEnvelope连接
拉框缩小
拉框范围为中心,缩小倍数为:当前视图范围/拉框范围
漫游
axMapControl1.Pan();
拉框选择
IGeometry geometry = axMapControl1.TrackRectangle();
axMapControl2.Map.SelectByShape(geometry, null, false); Imap接口的SelectByShape方法
formSelection.CurrentMap = axMapControl1.Map; //把地图对象传走
距离量算
NewLineFeedbackClass接口
Start //设置起点,开始动态线绘制
AddPoint //添加当前鼠标点
Display
面积量算
NewPolygonFeedback接口
Display
Start
AddPoint
if (pNewLineFeedback == null)
{
//实例化追踪线对象
pNewLineFeedback = new NewLineFeedbackClass();
pNewLineFeedback.Display = (axMapControl1.Map as IActiveView).ScreenDisplay;
//设置起点,开始动态线绘制
pNewLineFeedback.Start(pPointPt);
dToltalLength = 0;
}
else //如果追踪线对象不为空,则添加当前鼠标点
{
pNewLineFeedback.AddPoint(pPointPt);
}
//pGeometry = m_PointPt;
放大
IEnvelope接口的Expand
和IActiveView接口的Extent
缩小
IEnvelope接口的Expand
和IActiveView接口的Extent
全图显示
axMapControl1.Extent = axMapControl1.FullExtent;
前视图和后视图
axMapControl1.ActiveView.ExtentStack;
IExtentStack接口的
Undo();
Redo();
添加图例
添加指北针
添加比例尺
pGraphicsContainer.AddElement(pElement, 0); //像图中添加元素