public void ClearRouteAnalyst(AxMapControl mapControl) { //清除所有图标 SymbolUtil.ClearElement(mapControl); stopPoints.Clear(); barryPoints.Clear(); barryElements.Clear(); stopElements.Clear(); //清除网络分析图层 for (int i = 0; i < mapControl.LayerCount; i++) { ILayer layer = mapControl.get_Layer(i); INetworkLayer networkLayer = layer as INetworkLayer; INALayer naLayer = layer as INALayer; if (networkLayer != null || naLayer != null) { mapControl.DeleteLayer(i); } } //清除网络数据集 ILayer datalayer = LayerUtil.QueryLayerInMap(mapControl, "网络数据集"); if (datalayer != null) { mapControl.Map.DeleteLayer(datalayer); } IActiveView pActiveView = mapControl.ActiveView; pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null); mapControl.Refresh(); }
private void button1_Click(object sender, EventArgs e) { if (axMapControl1.LayerCount > LayerCount) { axMapControl1.DeleteLayer(axMapControl1.LayerCount); } //if (textBox1.Text != "") //{ List<IFeature> pFList = new List<IFeature>(); //QI到FeatureSelection IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection; //创建过滤器 IQueryFilter pQueryFilter = new QueryFilterClass(); //设置过滤器对象的查询条件 pQueryFilter.WhereClause = label4.Text + " like '%" + textBox1.Text + "%'"; IFeatureCursor pFeatureCursor = pFeatureLayer.Search(pQueryFilter, false); IFeature pFeature = pFeatureCursor.NextFeature(); while (pFeature != null) { //获取要素对象 pFList.Add(pFeature); pFeature = pFeatureCursor.NextFeature(); } System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor); if (pFList.Count > 0) { dataGridView1.RowCount = pFList.Count + 1; //设置边界风格 dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken; //设置列数 dataGridView1.ColumnCount = pFList[0].Fields.FieldCount; //遍历第一个要素的字段用于给列头赋值(字段的名称) for (int m = 0; m < pFList[0].Fields.FieldCount; m++) { dataGridView1.Columns[m].HeaderText = pFList[0].Fields.get_Field(m).AliasName; if (pFList[0].Fields.get_Field(m).AliasName == label4.Text) { DisplayFiledNum = m; } } //遍历要素 for (int i = 0; i < pFList.Count; i++) { pFeature = pFList[i]; for (int j = 0; j < pFeature.Fields.FieldCount; j++) { //填充字段值 dataGridView1[j, i].Value = pFeature.get_Value(j).ToString(); } } } else { MessageBox.Show("没有任何数据"); } //} }
public void ExcelToShp(string path) { if (Utils.CheckFileExists(path)) { string zjdShpTemplte = System.AppDomain.CurrentDomain.BaseDirectory + "ArcGisTemplete\\宅基地模板shp"; string saveDir = path.Substring(0, path.LastIndexOf(".")) + "SHP"; FileUtils.CopyDir(zjdShpTemplte, saveDir, true); while (axMapControl.LayerCount > 0) { axMapControl.DeleteLayer(0); } axMapControl.AddShapeFile(saveDir, "ZJD.shp"); IFeatureLayer featureLayer = ArcGisUtils.GetFeatureLayer2("ZJD"); IFeatureClass featureClass = featureLayer.FeatureClass; IWorkspaceEdit workspaceEdit = ArcGisUtils.StratEdit(featureClass); IFeatureCursor featureCursor = featureClass.Insert(false); IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer(); ISheet sheet = ExcelManager.ExcelRead.ReadExcelSheet(path, 0); foreach (NPOI.SS.UserModel.IRow row in sheet) { IPointCollection pc = new Polygon(); string[] pcStrArray = row.GetCell(2).StringCellValue.Split(','); foreach (string ptStr in pcStrArray) { string[] ptArray = ptStr.Split(':'); IPoint point = new PointClass(); point.PutCoords(double.Parse(ptArray[0]), double.Parse(ptArray[1])); pc.AddPoint(point); } IPolygon polygon = ArcGisUtils.CreatePolygon(pc); featureBuffer.Shape = polygon; featureBuffer.Value[3] = row.GetCell(0).StringCellValue; featureBuffer.Value[4] = row.GetCell(1).StringCellValue; featureCursor.InsertFeature(featureBuffer); } //IList<IFeature> list = ArcGisUtils.GetEntitysList("", "ZJD"); ArcGisDao.EndEdit(workspaceEdit); } }