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); }
/// <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(); }
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); } } } } } }