private void MainFrm_Load(object sender, EventArgs e) { //get a reference to the MapControl and the PageLayoutControl //取得MapControl和PageLayoutControl的引用 m_mapControl = (IMapControl3)this.mainMapControl.Object; m_pageLayoutControl = (IPageLayoutControl2)this.axPageLayoutControl.Object; //initialize the controls synchronization calss //初始化controls synchronization calss m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl); //bind the controls together (both point at the same map) and set the MapControl as the active control //把MapControl和PageLayoutControl帮顶起来(两个都指向同一个Map),然后设置MapControl为活动的Control m_controlsSynchronizer.BindControls(true); //add the framework controls (TOC and Toolbars) in order to synchronize then when the //active control changes (call SetBuddyControl) //m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object); //m_controlsSynchronizer.AddFrameworkControl(axToolbarControl2.Object); m_controlsSynchronizer.AddFrameworkControl(this.axTOCControl.Object); //add the Open Map Document command onto the toolbar //OpenNewMapDocument openMapDoc = new OpenNewMapDocument(m_controlsSynchronizer); //axToolbarControl1.AddItem(openMapDoc, -1, 0, false, -1, esriCommandStyles.esriCommandStyleIconOnly); GalleryDropDown skins = new GalleryDropDown(); skins.Ribbon = ribbonControl1; DevExpress.XtraBars.Helpers.SkinHelper.InitSkinGalleryDropDown(skins); iPaintStyle.DropDownControl = skins; }
private void MainForm1_Load(object sender, EventArgs e) { try { m_mapControl = (IMapControl3)MapControl.Object; m_pageLayoutControl = (IPageLayoutControl2)PageLayoutControl.Object; //initialize the controls synchronization class m_controlsSynchronizer = new GenericTools.SynchronizerTools.ControlsSynchronizer(m_mapControl, m_pageLayoutControl); //bind the controls together (both point at the same map) and set the MapControl as the active control m_controlsSynchronizer.BindControls(true); m_controlsSynchronizer.AddFrameworkControl(TOCControl.Object); m_controlsSynchronizer.ActivateMap(); panelLayoutView.Visible = false; panelDataView.Visible = true; if (File.Exists("MXD/LoadingDocument.mxd")) { m_mapControl.LoadMxFile("MXD/LoadingDocument.mxd"); } } catch { lblCoordinate.Text = "اشکال در بارگذاری نرم افزار"; } }
private void FormMain_Load(object sender, EventArgs e) { //获取用户权限 CommonClass common = new CommonClass(); string user = common.GetConfigValue("USER"); ConnectDB db = new ConnectDB(); DataTable dt = db.GetDataBySql("select * from GISDATA_USER WHERE USER ='******'"); DataRow dr = dt.Select(null)[0]; string ROLE = dr["ROLE"].ToString(); if (ROLE == "超级管理员") { this.用户管理ToolStripMenuItem.Visible = true; this.报表设计ToolStripMenuItem.Visible = true; this.任务管理ToolStripMenuItem.Visible = true; this.质检配置ToolStripMenuItem.Visible = true; this.字典管理ToolStripMenuItem.Visible = true; this.数据注册ToolStripMenuItem.Visible = true; } else { this.用户管理ToolStripMenuItem.Visible = false; this.报表设计ToolStripMenuItem.Visible = false; this.任务管理ToolStripMenuItem.Visible = false; this.质检配置ToolStripMenuItem.Visible = false; this.字典管理ToolStripMenuItem.Visible = false; this.数据注册ToolStripMenuItem.Visible = false; } try { //在Form1_Load函数进行初始化,即菜单的创建: m_menuMap = new ToolbarMenuClass(); //添加自定义菜单项到TOCCOntrol的图层菜单中 m_menuLayer = new ToolbarMenuClass(); m_tocControl = (ITOCControl2)this.axTOCControl1.Object; // 取得 MapControl 和 PageLayoutControl 的引用 m_mapControl = (IMapControl3)this.axMapControl1.Object; //这样就可以把AxMapControl传递给其它要用到的地方 //添加“移除图层”菜单项 m_menuLayer.AddItem(new RemoveLayer(), -1, 0, false, esriCommandStyles.esriCommandStyleTextOnly); //添加“放大到整个图层”菜单项 m_menuLayer.AddItem(new ZoomToLayer(), -1, 1, true, esriCommandStyles.esriCommandStyleTextOnly); //查看属性表 m_menuLayer.AddItem(new OpenAttribute(this.axMapControl1), -1, 2, true, esriCommandStyles.esriCommandStyleTextOnly); //设置菜单的Hook m_menuLayer.SetHook(m_mapControl); m_menuMap.SetHook(m_mapControl); m_hookHelper.Hook = this.axMapControl1.Object; }catch (Exception exc) { LogHelper.WriteLog(typeof(FormMain), exc); } }
private void AeMap_Load(object sender, EventArgs e) { sMapUnits = "Unknown"; m_mapControl = (IMapControl3)this.axMapControl1.Object; m_pageLayoutControl = (IPageLayoutControl2)this.axPageLayoutControl1.Object; //初始化controls synchronization class m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl); //把MapControl和PageLayoutControl绑定起来(两个都指向同一个Map),然后设置MapControl为活动的Control m_controlsSynchronizer.BindControls(true); //为了在切换MapControl和PageLayoutControl视图同步,要添加Framework Control m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object); m_controlsSynchronizer.AddFrameworkControl(this.axTOCControl1.Object); //添加打开命令按钮到工具条 OpenNewMapDocument openMapDoc = new OpenNewMapDocument(m_controlsSynchronizer); axToolbarControl1.AddItem(openMapDoc, -1, 0, false, -1, esriCommandStyles.esriCommandStyleIconOnly); //初始化菜单创建 m_menuMap = new ToolbarMenuClass(); m_menuLayer = new ToolbarMenuClass(); //添加自定义菜单项到TOCCOntrol的Map菜单中 //打开文档菜单 m_menuMap.AddItem(new OpenNewMapDocument(m_controlsSynchronizer), -1, 0, false, esriCommandStyles.esriCommandStyleIconAndText); //添加数据菜单 m_menuMap.AddItem(new ControlsAddDataCommandClass(), -1, 1, false, esriCommandStyles.esriCommandStyleIconAndText); //打开全部图层菜单 m_menuMap.AddItem(new LayerVisibility(), 1, 2, false, esriCommandStyles.esriCommandStyleTextOnly); //关闭全部图层菜单 m_menuMap.AddItem(new LayerVisibility(), 2, 3, false, esriCommandStyles.esriCommandStyleTextOnly); //以二级菜单的形式添加内置的“选择”菜单 m_menuMap.AddSubMenu("esriControls.ControlsFeatureSelectionMenu", 4, true); //以二级菜单的形式添加内置的“地图浏览”菜单 m_menuMap.AddSubMenu("esriControls.ControlsMapViewMenu", 5, true); //添加自定义菜单项到TOCControl的图层菜单中 m_menuLayer = new ToolbarMenuClass(); //添加“移除图层”菜单项 m_menuLayer.AddItem(new RemoveLayer(), -1, 0, false, esriCommandStyles.esriCommandStyleTextOnly); //添加“放大到整个图层”菜单项 m_menuLayer.AddItem(new ZoomToLayer(), -1, 1, true, esriCommandStyles.esriCommandStyleTextOnly); //设置菜单的Hook m_menuLayer.SetHook(m_mapControl); m_menuMap.SetHook(m_mapControl); m_tocControl = (ITOCControl2)this.axTOCControl1.Object; }
/// <summary> /// Form.Load method /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmMain_Load(object sender, System.EventArgs e) { //get a reference to the MapControl and the PageLayoutControl m_mapControl = (IMapControl3)axMapControl1.Object; m_pageLayoutControl = (IPageLayoutControl2)axPageLayoutControl1.Object; //initialize the controls synchronization class m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl); //bind the controls together (both point at the same map) and set the MapControl as the active control m_controlsSynchronizer.BindControls(true); //add the framework controls (TOC and Toolbars) in order to synchronize then when the //active control changes (call SetBuddyControl) m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object); m_controlsSynchronizer.AddFrameworkControl(axToolbarControl2.Object); m_controlsSynchronizer.AddFrameworkControl(axTOCControl1.Object); //add the Open Map Document command onto the toolbar OpenNewMapDocument openMapDoc = new OpenNewMapDocument(m_controlsSynchronizer); axToolbarControl1.AddItem(openMapDoc, -1, 0, false, -1, esriCommandStyles.esriCommandStyleIconOnly); }
private void btnOK_Click(object sender, EventArgs e) { try { mMapControl.Map.ClearSelection(); //清除上次查询结果 IActiveView pActiveView = mMapControl.Map as IActiveView; //pQueryFilter的实例化 IQueryFilter pQueryFilter = new QueryFilterClass(); //设置查询过滤条件 pQueryFilter.WhereClause = textBoxSql.Text; //MessageBox.Show(textBoxSql.Text); //查询 ,search的参数第一个为过滤条件,第二个为是否重复执行 //IFeatureCursor pFeatureCursor = pFeatureLayer.Search(pQueryFilter, false); ////获取查询到的要素 //IFeature pFeature = pFeatureCursor.NextFeature(); ////判断是否获取到要素 IFeatureSelection pFeatureSelection = this.pFeatureLayer as IFeatureSelection; int iSelectedFeaturesCount = pFeatureSelection.SelectionSet.Count; pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);//执行查询 //while (pFeature != null) //{ // mMapControl.Map.SelectFeature(pFeatureLayer, pFeature); //选择要素 // mMapControl.Extent = pFeature.Shape.Envelope; //放大到要素 // pFeature = pFeatureCursor.NextFeature(); //} //如果本次查询后,查询的结果数目没有改变,则认为本次查询没有产生新的结果 if (pFeatureSelection.SelectionSet.Count == 0) { MessageBox.Show("No results!"); return; } //pFeatureSelection.SelectionSet.Count == iSelectedFeaturesCount || IEnumFeature pEnumFeature = mMapControl.Map.FeatureSelection as IEnumFeature; int nFeatureSize = 0; pEnumFeature.Reset(); IFeature pFeature = pEnumFeature.Next(); while (pFeature != null) { nFeatureSize++; pFeature = pEnumFeature.Next(); } IEnvelope pEnvelope = new EnvelopeClass(); IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; double dScale = (this.pFeatureLayer.MinimumScale + this.pFeatureLayer.MaximumScale) / 2; ESRI.ArcGIS.Controls.IMapControl3 pMaps = (ESRI.ArcGIS.Controls.IMapControl3)mMapControl.Object; bool bRec = true; while (bRec) { pEnumFeature.Reset(); pFeature = pEnumFeature.Next(); int i = 0; while (pFeature != null)//将目标中心显示 { pEnvelope = pFeature.Extent; IPoint pCenterPt = new PointClass(); pCenterPt.X = (pEnvelope.XMax + pEnvelope.XMin) / 2; pCenterPt.Y = (pEnvelope.YMax + pEnvelope.YMin) / 2; IEnvelope pMapEntent = pActiveView.Extent; pMapEntent.CenterAt(pCenterPt); pActiveView.Extent = pMapEntent; pMaps.MapScale = dScale; pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, pActiveView.Extent); pActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, pActiveView.Extent); Application.DoEvents(); //MapView.FlashFeature(m_MapControl, pFeature.Shape);//目标闪烁 FlashFeature(pFeature.Shape); Application.DoEvents(); i++; if (nFeatureSize >= 2 && i < nFeatureSize - 1) { this.Visible = false; DialogResult pRes = MessageBox.Show("Is this feature?", "Sure", MessageBoxButtons.YesNoCancel); if (pRes == DialogResult.Yes) { this.Visible = true; return; } else if (pRes == DialogResult.Cancel) { return; } } pFeature = pEnumFeature.Next(); } if (nFeatureSize <= 1) { return; } DialogResult pDlgRes = MessageBox.Show("It is already last one, restart?", "Sure", MessageBoxButtons.YesNo); if (pDlgRes == DialogResult.Yes) { continue; } else { return; } } } catch (Exception ex) { MessageBox.Show("语句有错误, 请仔细检查\n" + ex.Message); return; } }
private void MapUserIdentify(double mapX, double mapY) { try { //axMapControl1.Map.ClearSelection(); ESRI.ArcGIS.Controls.IMapControl3 m_mapControl = (IMapControl3)axMapControl1.Object; IMap pMap = axMapControl1.Map; IGroupLayer pGroupLayer = new GroupLayer(); if (pMap.LayerCount == 0) { return; } IEnumLayer pEnumLayer; ILayer pLayer; pEnumLayer = pMap.get_Layers(null, true); if (pEnumLayer == null) { return; } pEnumLayer.Reset(); double dCurrScale = m_mapControl.MapScale; for (pLayer = pEnumLayer.Next(); pLayer != null; pLayer = pEnumLayer.Next()) { if (pLayer.Visible) { if (pLayer is IGroupLayer) { continue; } if (pLayer.MinimumScale != 0 && dCurrScale > pLayer.MinimumScale) { continue; } if (pLayer.MaximumScale != 0 && dCurrScale < pLayer.MaximumScale) { continue; } pGroupLayer.Add(pLayer); } } IPoint pPoint = new ESRI.ArcGIS.Geometry.Point(); pPoint.X = mapX; pPoint.Y = mapY; IIdentifyObj pIdObj; IIdentify pIdentify = pGroupLayer as IIdentify; IArray pIDArray; IFeatureIdentifyObj pFeatIdObj; IEnvelope pEnv = pPoint.Envelope; IDisplayTransformation pDT = m_mapControl.ActiveView.ScreenDisplay.DisplayTransformation; pEnv.Expand(pDT.VisibleBounds.Width / 200, pDT.VisibleBounds.Height / 200, false); pIDArray = pIdentify.Identify(pEnv); if (pIDArray == null || pIDArray.Count == 0) { return; } pFeatIdObj = pIDArray.get_Element(0) as IFeatureIdentifyObj; pIdObj = pFeatIdObj as IIdentifyObj; IRowIdentifyObject pRowIdentifyObj = pFeatIdObj as IRowIdentifyObject; IFeature pFeature = pRowIdentifyObj.Row as IFeature; if (pFeature != null && pFeature.Shape != null && !pFeature.Shape.IsEmpty) { //axMapControl1.FlashShape(pFeature.Shape); axMapControl1.Map.SelectFeature(pIdObj.Layer, pFeature); FlashFeature(axMapControl1, pFeature.Shape); } // pIdObj.Flash(m_mapControl.ActiveView.ScreenDisplay);//The Flash method is not supported with ArcGIS Engine, use the IHookActions.DoActions() method with the esriHookActionsFlash for this functionality. ILayer pIdentiyLayer = pIdObj.Layer; DataTable pTable = new DataTable(); DataColumn pDataColumn = pTable.Columns.Add(); pDataColumn.ColumnName = "列名"; pDataColumn = pTable.Columns.Add(); pDataColumn.ColumnName = "值"; DataRow pFirestDataRow = pTable.Rows.Add(); pFirestDataRow[0] = "所在层"; pFirestDataRow[1] = pIdentiyLayer.Name; if (pIdentiyLayer is IFeatureLayer) { IRowIdentifyObject pRowObj = pIdObj as IRowIdentifyObject; // IRow pRow = pRowObj.Row; IFeature pRow = pRowObj.Row as IFeature; IFields pFields = pRow.Fields; for (int i = 0; i < pFields.FieldCount; i++) { IField pField = pFields.get_Field(i); DataRow pDataRow = null; /* * switch (pField.Type) * { * case esriFieldType.esriFieldTypeOID: * pDataRow = pTable.Rows.Add(); * pDataRow[0] = pField.Name; * pDataRow[1] = pRow.OID.ToString(); * break; * case esriFieldType.esriFieldTypeGeometry: * //pDataRow[0] = "Geometry"; * //pDataRow[1] = QueryShapeType(pField.GeometryDef.GeometryType);; * break; * default: * pDataRow = pTable.Rows.Add(); * pDataRow[0] = pField.Name; * pDataRow[1] = pRow.get_Value(i).ToString(); * break; * } * * */ ////////////////////////////////////////////////// string sValue = pRow.get_Value(i).ToString(); string strFName = pField.AliasName.ToUpper(); string strUName = strFName.ToUpper(); if (strUName == "SHAPE" || strUName == "LENGTH" || strUName == "OBJECTID" || strUName == "ID" || strUName == "FNODE_" || strUName == "TNODE_" || strUName == "LPOLY_" || strUName == "RPOLY_" || strUName == "SDXL_" || strUName == "SDXL_ID" || strUName == "OBJECTID_1" || strUName == "FID") { continue; } else if (strUName == "SHAPE.LEN" || strUName == "SHAPE_LENG") { strFName = "几何长度"; } else if (strUName == "SHAPE_AREA" || strUName == "SHAPE.AREA") { strFName = "多边形面积"; } else if (strUName == "HEIGHT") { strFName = "高程"; } else if (strUName == "NAME") { strFName = "名称"; } else if (strUName == "TYPE") { strFName = "类型"; } else if (strUName == "SUBTYPE") { strFName = "子类型"; } if (strUName == "LENGTH" || strUName == "SHAPE.LEN") { IUnitConverter myUnit = new UnitConverterClass(); sValue = Math.Round(myUnit.ConvertUnits((double)pRow.get_Value(i), esriUnits.esriMeters, esriUnits.esriKilometers), 2).ToString(); sValue = sValue.ToString() + "千米"; } if (strUName == "SHAPE_AREA" || strUName == "SHAPE.AREA") { IGeometry pGeo = pRow.ShapeCopy; pGeo.Project(axMapControl1.Map.SpatialReference); IPolygon pPolygon = (IPolygon)pGeo; IArea pArea = (IArea)pPolygon; double strValue = pArea.Area * 0.000001; //// double strValue = Math.Abs((double)pFeature.get_Value(j)) * 10585; strValue = Math.Round(strValue, 2); sValue = strValue.ToString() + "平方千米"; } esriFieldType tFieldTypy = pField.Type; if (tFieldTypy == esriFieldType.esriFieldTypeGeometry) { sValue = pField.GeometryDef.GeometryType.ToString(); sValue = sValue.Substring(12, sValue.Length - 12); } pDataRow = pTable.Rows.Add(); pDataRow[0] = strFName; pDataRow[1] = sValue; ////////////////////////////////////////////////// } } else if (pIdentiyLayer is ITinLayer) { ITinLayer pTinLayer = (ITinLayer)pIdentiyLayer; ITinSurface pTinSurface = (ITinSurface)pTinLayer.Dataset; if (pTinSurface == null) { return; } ITinSurfaceElement pTinSurfaceElement = pTinSurface.GetSurfaceElement(pPoint); if (pTinSurfaceElement == null) { return; } IFields pFields = pTinLayer.Dataset.Fields; DataRow pDataRow = null; pDataRow = pTable.Rows.Add(); pDataRow[0] = "高度"; pDataRow[1] = pTinSurfaceElement.Elevation.ToString(); pDataRow = pTable.Rows.Add(); pDataRow[0] = "坡度"; pDataRow[1] = pTinSurfaceElement.SlopeDegrees.ToString(); pDataRow = pTable.Rows.Add(); pDataRow[0] = "方向"; pDataRow[1] = pTinSurfaceElement.AspectDegrees.ToString(); } if (pIdentiyLayer is IRasterLayer) { MessageBox.Show("aa"); } //ShowIndetify(pTable); //m_pMainform.ShowIndetify(pTable); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } }
private void MainFrm_Load(object sender, EventArgs e) { IAoInitialize m_aoinitialize = new AoInitializeClass(); m_aoinitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo); //get a reference to the MapControl and the PageLayoutControl //取得MapControl和PageLayoutControl的引用 m_mapControl = (IMapControl3)this.mainMapControl.Object; m_pageLayoutControl = (IPageLayoutControl2)this.axPageLayoutControl.Object; //initialize the controls synchronization calss //初始化controls synchronization calss m_controlsSynchronizer = new ControlsSynchronizer(m_mapControl, m_pageLayoutControl); //bind the controls together (both point at the same map) and set the MapControl as the active control //把MapControl和PageLayoutControl帮顶起来(两个都指向同一个Map),然后设置MapControl为活动的Control m_controlsSynchronizer.BindControls(true); //add the framework controls (TOC and Toolbars) in order to synchronize then when the //active control changes (call SetBuddyControl) //m_controlsSynchronizer.AddFrameworkControl(axToolbarControl1.Object); //m_controlsSynchronizer.AddFrameworkControl(axToolbarControl2.Object); m_controlsSynchronizer.AddFrameworkControl(this.axTOCControl.Object); //add the Open Map Document command onto the toolbar //OpenNewMapDocument openMapDoc = new OpenNewMapDocument(m_controlsSynchronizer); //axToolbarControl1.AddItem(openMapDoc, -1, 0, false, -1, esriCommandStyles.esriCommandStyleIconOnly); }