private void iAttribute_Click(object sender, EventArgs e)
        {
            Attribute af = new Attribute();

            af.MyClick((IMapControl3)m_mapControl.Object);
            m_tocControl.Refresh();
            m_tocControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
        }
Beispiel #2
0
        /// <summary>
        /// 将X Y坐标成图
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonOK_Click(object sender, EventArgs e)
        {
            //将X Y坐标成图,首先判定各设置条件是否完整
            if (this.textBoxExcelPath.Text.Trim() == string.Empty)
            {
                MessageBox.Show("坐标数据不能为空!");
                return;
            }
            if (this.comboBoxExcelSheets.SelectedIndex == -1)
            {
                MessageBox.Show("未选择X Y坐标数据Sheet表!");
                return;
            }
            if (this.comboBoxXField.SelectedIndex == -1)
            {
                MessageBox.Show("未选择成图X字段 !");
                return;
            }
            if (this.comboBoxYield.SelectedIndex == -1)
            {
                MessageBox.Show("未选择成图Y字段 !");
                return;
            }
            if (this.comboBoxXField.SelectedItem.ToString() == this.comboBoxYield.SelectedItem.ToString())
            {
                MessageBox.Show("成图X字段与成图Y字段不能相同 !");
                return;
            }
            //下面进行数据成图
            string xFieldName     = this.comboBoxXField.SelectedItem.ToString();
            string yFieldName     = this.comboBoxYield.SelectedItem.ToString();
            string sheetTableName = this.comboBoxExcelSheets.SelectedItem.ToString();
            //获得所有数据
            DataTable dt = QueryBySql(String.Format("select * from [{0}]", sheetTableName));
            //将DataTable转化为ITable
            ITable pTable = DataTableToITable(dt, xFieldName, yFieldName, @"c:\");

            if (pTable == null)
            {
                MessageBox.Show("数据转换失败!没有将DataTable转化为ITable。");
                return;
            }
            IFeatureClass pFeatureClass = OpenXYData(pTable, "X", "Y", "", new UnknownCoordinateSystemClass());
            IFeatureLayer pFeatureLayer = new FeatureLayerClass();

            pFeatureLayer.FeatureClass = pFeatureClass;
            pFeatureLayer.Name         = "转换结果";
            m_axMapControl.AddLayer(pFeatureLayer as ILayer, 0);
            m_axMapControl.Refresh();
            m_axTOCControl.Refresh();
            this.Close();
        }
Beispiel #3
0
        private void btnuse_Click(object sender, EventArgs e)
        {
            if (treeshow.SelectedIndex == 1)
            {
                ITinRenderer             pRenderNew  = new TinFaceRenderer() as ITinRenderer;
                ITinSingleSymbolRenderer pUVRenderer = pRenderNew as ITinSingleSymbolRenderer;
                ISimpleFillSymbol        pSymbol     = new SimpleFillSymbolClass();
                pSymbol.Color      = ClsGDBDataCommon.ColorToIColor(btncolor.SelectedColor);
                pUVRenderer.Symbol = pSymbol as ISymbol;
                pTLayer.ClearRenderers();
                pTLayer.InsertRenderer(pRenderNew, 0);
                pTocContral.SetBuddyControl(pMapContral);
                pTocContral.Refresh();
                pMapContral.Refresh();
                if (bar3.SelectedDockTab == 2)
                {
                    IActiveView pActiveView = pSceneControl.Scene as IActiveView;
                    pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, pTLayer, null);
                }
            }
            else
            {
                ITinRenderer pTinRenderer = new TinElevationRenderer() as ITinRenderer;

                //设置样式
                if (pTinRenderer is ITinColorRampRenderer)
                {
                    if (pTinRenderer.Name == "Elevation")
                    {
                        if (lowbreak.Count > 0)
                        {
                            int ClassCount = int.Parse(cmbclasses.SelectedItem.ToString());

                            ITinAdvanced             pTinAdv = pTLayer.Dataset as ITinAdvanced;
                            ITinColorRampRenderer    pTinColorRampRenderer    = pTinRenderer as ITinColorRampRenderer;
                            IClassBreaksUIProperties pClassBreaksUIProperties = pTinRenderer as IClassBreaksUIProperties;
                            INumberFormat            pNumberFormat            = pClassBreaksUIProperties.NumberFormat;
                            pTinColorRampRenderer.MinimumBreak = lowbreak[0];

                            pTinColorRampRenderer.BreakCount = int.Parse(cmbclasses.SelectedItem.ToString());
                            ISimpleFillSymbol pSymbol = null;
                            for (int j = 0; j < pTinColorRampRenderer.BreakCount; j++)
                            {
                                pClassBreaksUIProperties.set_LowBreak(j, lowbreak[j]);
                                pTinColorRampRenderer.set_Break(j, highbreak[j]);

                                //用于图层控制中分级标示显示
                                pTinColorRampRenderer.set_Label(ClassCount - j - 1, datagridsymbol.Rows[j].Cells[2].Value.ToString());
                                pSymbol       = new SimpleFillSymbolClass();
                                pSymbol.Color = ClsGDBDataCommon.ColorToIColor(datagridsymbol.Rows[j].Cells[0].Style.BackColor);
                                pTinColorRampRenderer.set_Symbol(ClassCount - j - 1, pSymbol as ISymbol);
                            }
                            pTLayer.ClearRenderers();
                            (pTinColorRampRenderer as ITinRenderer).Visible = true;
                            pTLayer.InsertRenderer(pTinColorRampRenderer as ITinRenderer, 0);//插入一个渲染模型
                            pTocContral.SetBuddyControl(pMapContral);
                            pTocContral.Refresh();
                            pMapContral.Refresh();
                            if (bar3.SelectedDockTab == 2)
                            {
                                IActiveView pActiveView = pSceneControl.Scene as IActiveView;
                                pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, pTLayer, null);
                            }
                        }
                    }
                }
            }
        }