⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cs

📁 运用ArcEngine9.2结合C#开发的gis系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
            axMapControl1.CenterAt(pPt);
        }
        //xuanran
       
        private IRgbColor GetRGB(int R, int G, int B)
        {
            IRgbColor pRGB;
            pRGB = new RgbColorClass();
            pRGB.Red = R;
            pRGB.Green = G;
            pRGB.Blue = B;
            return pRGB;
        }
        //简单渲染
        private void simplerendererToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }

            formsimrend simpleRenderer = new formsimrend();
            simpleRenderer.pMap = axMapControl1.Map;
            simpleRenderer.renderer();

            axMapControl1.Map = simpleRenderer.pMap;
            axMapControl1.ActiveView.Refresh();
            axMapControl1.Update(); 
        }
        //唯一值渲染(有问题)
        private void uniquerendererToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }

            formselectfield classbreak = new formselectfield("Unique", pPrimaryTable, pGeoFeatureL);
            classbreak.pMap = axMapControl1.Map;
            classbreak.pFlag = "Unique";
            if (classbreak.ShowDialog() == DialogResult.Cancel)
                return;
            

            axMapControl1.Map = classbreak.pMap;

            axMapControl1.Refresh();
            axMapControl2.Refresh();
        }
        //点密度渲染 
        private void densityrendererToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }

            formselectfield renderer = new formselectfield("DotValue", pPrimaryTable, pGeoFeatureL);
            renderer.pFlag = "DotValue";
            renderer.pMap = axMapControl1.Map;
            renderer.Show();
            renderer.Visible = false;
            DialogResult result = renderer.ShowDialog();

            if (result == DialogResult.Cancel)
                return;

            axMapControl1.Map = renderer.pMap;
            axMapControl1.ActiveView.Refresh(); 
        }
        //分类渲染
        private void classifyrendererToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }

            formselectfield classbreak = new formselectfield("ClassBreak", pPrimaryTable, pGeoFeatureL);
            classbreak.pMap = axMapControl1.Map;
            classbreak.pFlag = "ClassBreak";
            classbreak.Show();
            classbreak.Visible = false;
            DialogResult result = classbreak.ShowDialog();
            if (result == DialogResult.OK)
            {
                axMapControl1.Map = classbreak.pMap;
                axMapControl1.Refresh();
            }
            else
                return;
        }
        //图表渲染
        private void pillarToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }

            formselectfield renderer = new formselectfield("Chart", pPrimaryTable, pGeoFeatureL);
            renderer.pFlag = "Chart";
            renderer.pMap = axMapControl1.Map;
            renderer.Show();
            renderer.Visible = false;
            DialogResult result = renderer.ShowDialog();

            if (result == DialogResult.Cancel)
                return;
            axMapControl1.Map = renderer.pMap;
            axMapControl1.ActiveView.Refresh();
        } 
        private void pierendererToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }

            formselectfield renderer = new formselectfield("pie", pPrimaryTable, pGeoFeatureL);
            renderer.pFlag = "pie";
            renderer.pMap = axMapControl1.Map;
            renderer.Show();
            renderer.Visible = false;
            DialogResult result = renderer.ShowDialog();

            if (result == DialogResult.Cancel)
                return;
            axMapControl1.Map = renderer.pMap;
            axMapControl1.ActiveView.Refresh();
        }
        
        //比例渲染
        private void proportionrendererToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再渲染", "提示");
                return;
            }


            formselectfield renderer = new formselectfield("Proportional", pPrimaryTable,pGeoFeatureL);
            renderer.pMap = axMapControl1.Map;
            renderer.pFlag = "Proportional";
            renderer.Show();
            renderer.Visible = false;
            DialogResult result = renderer.ShowDialog();

            if (result == DialogResult.Cancel)
                return;


            axMapControl1.Map = renderer.pMap;
            axMapControl1.ActiveView.Refresh();
            axMapControl1.Update();
        }
        private void 地图查询属性ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ICommand pCommand;
            pCommand = new ControlsMapIdentifyToolClass();
            pCommand.OnCreate(axMapControl1.Object);
            axMapControl1.CurrentTool = pCommand as ITool;
        }
        private void 属性查询ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("添加图层再再查询", "提示");
                return;
            }
            chaxun pQuery = new chaxun();
            pQuery.pMap = axMapControl1.Map;
            pQuery.pTable = pPrimaryTable;
            pQuery.ShowDialog();
            IFeature pFeature;
            IQueryFilter pQueryFilter;
            IFeatureLayer pFeatureLayer;
            pFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(0);
            IFeatureClass pFeatureClass = (IFeatureClass)pPrimaryTable;
            IGeoFeatureLayer pgeolayer = pFeatureLayer as IGeoFeatureLayer;
            pFeatureClass =pgeolayer.DisplayFeatureClass ;
            pQueryFilter = new QueryFilterClass();
            pQueryFilter.WhereClause = pQuery.querySentence;
            IFeatureCursor pFeatureCursor;
            pFeatureCursor = pFeatureClass.Search(pQueryFilter, false);
            IFeatureSelection pSelected;//= new SelectionSetClass();
            pSelected = pGeoFeatureL as IFeatureSelection;
            pFeature = (IFeature)pFeatureCursor.NextFeature();
            while (pFeature != null)
            {
                pSelected.Add(pFeature);
                pFeature = (IFeature)pFeatureCursor.NextFeature();
            }
            axMapControl1.Refresh();

        }

        private void 栅格缓冲区分析ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string pRenderField;
            int layerIndex;
            huanchongqufenxi pQuery = new huanchongqufenxi();
            pQuery.Text = "缓冲区分析";
            pQuery.pMap = axMapControl1.Map;
            pQuery.Buffer = true;
            pRenderField = pQuery.pRenderField;
            layerIndex = pQuery.layerIndex;
            pQuery.ShowDialog();

            IFeature pFeature;
            IQueryFilter pQueryFilter;
            IGeometry pGeometry;

            IFeatureLayer pFeatureLayer;
            pFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(layerIndex);

            IFeatureClass pFeatureClass;
            pFeatureClass = pFeatureLayer.FeatureClass;
            pQueryFilter = new QueryFilterClass();
            pQueryFilter.WhereClause = pRenderField;

            IFeatureCursor pFeatureCursor;
            pFeatureCursor = pFeatureClass.Search(pQueryFilter, false);
            pFeature = (IFeature)pFeatureCursor.NextFeature();

            ITopologicalOperator pTopOpr;
            pTopOpr = (ITopologicalOperator)pFeature.Shape;

            IPolygon pBufferPoly;
            pBufferPoly = (IPolygon)pTopOpr.Buffer(0.2);
            pGeometry = (IGeometry)pBufferPoly;

            axMapControl1.FlashShape(pGeometry, 3, 300, null);

            axMapControl1.DrawShape(pGeometry);
        }
        //拉框查询
        private void LKChaXun(int m)
        {
            IFeatureClass pFc;
            ISpatialFilter pSpFilter;
            IFeatureCursor pFtCur;
            IFeature pFt;
            IFeatureSelection pFSel;
            IEnvelope pEnv;
            IFeatureLayer pLyr = axMapControl1.get_Layer(0) as IFeatureLayer;
            pFc = pLyr.FeatureClass;
            pEnv = axMapControl1.TrackRectangle();

            pSpFilter = new SpatialFilterClass();
            pSpFilter.Geometry = pEnv;
            //pSpFilter.SpatialRel = esriSpatialRelContains;
            if (m == 0)
                pSpFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
            if (m == 1)
                pSpFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects;


            pFtCur = pLyr.Search(pSpFilter, false);
            pFt = pFtCur.NextFeature();
            pFSel = pLyr as IFeatureSelection;

            pFSel.CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew;

            ITopologicalOperator pTopOper;
            IPolygon pBufferPolygen;

            do
            {
                pFSel.Add(pFt);
                pFt = pFtCur.NextFeature();
                pTopOper = (ITopologicalOperator)pFt.Shape;

                pBufferPolygen = (IPolygon)pTopOper.Buffer(0.1);

                //axMapControl1.FlashShape(pBufferPolygen, 3, 300, Type.Missing);

                axMapControl1.DrawShape(pBufferPolygen);
            }
            while (pFt != null);
        }
        private void 拉框相交ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LKChaXunLeiXing = 1;
            LaKuang = true;
        }

        private void 拉框包含ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LKChaXunLeiXing = 0;
            LaKuang = true;
        }

        private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
        {
            if (LaKuang)
            {
                LKChaXun(LKChaXunLeiXing);
            }
        }

        private void 叠置求和ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.LayerCount >= 2)
            {
                diezhifenxi Overlay_Analysis = new diezhifenxi(axMapControl1, axMapControl2, axTOCControl1, 2);
                Overlay_Analysis.Text = "叠置求和";
                Overlay_Analysis.ShowDialog();
            }
            else
            {
                MessageBox.Show("至少打开两个图层!");
                return;
            }
        }

        private void 叠置求交ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.LayerCount >= 2)
            {
                diezhifenxi Overlay_Analysis = new diezhifenxi(axMapControl1, axMapControl2, axTOCControl1, 1);
                Overlay_Analysis.Text = "叠置求交";
                Overlay_Analysis.ShowDialog();
            }
            else
            {
                MessageBox.Show("至少打开两个图层!");
                return;
            }
        }

        private void 叠置裁剪ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (axMapControl1.LayerCount >= 2)
            {
                diezhifenxi Overlay_Analysis = new diezhifenxi(axMapControl1, axMapControl2, axTOCControl1, 3);
                Overlay_Analysis.Text = "叠置裁剪";
                Overlay_Analysis.ShowDialog();
            }
            else
            {
                MessageBox.Show("至少打开两个图层!");
                return;
            }
        }

        private void 标注ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            biaozhu pBiaoZhu = new biaozhu();
            pBiaoZhu.pMap = axMapControl1.Map;
            pBiaoZhu.conntable = pPrimaryTable;
            pBiaoZhu.ShowDialog();

            IGeoFeatureLayer m_pGeoFeatureLayer = (IGeoFeatureLayer)axMapControl1.get_Layer(pBiaoZhu.Num);
            IAnnotateLayerPropertiesCollection pAnnoLayerPropsColl;
            pAnnoLayerPropsColl = m_pGeoFeatureLayer.AnnotationProperties;
            pAnnoLayerPropsColl.Clear();



            pAnnoLayerPropsColl.Add(pBiaoZhu.AnnotateLayerProperties);
            m_pGeoFeatureLayer.DisplayAnnotation = true;
            axMapControl1.Refresh();
        }

       
        private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
      
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -