• AE基础(6)数据查询与选择


      1 using ESRI.ArcGIS.Carto;
      2 using ESRI.ArcGIS.Controls;
      3 using ESRI.ArcGIS.Geodatabase;
      4 using ESRI.ArcGIS.Geometry;
      5 using System;
      6 using System.Collections.Generic;
      7 using System.ComponentModel;
      8 using System.Data;
      9 using System.Drawing;
     10 using System.Linq;
     11 using System.Text;
     12 using System.Threading.Tasks;
     13 using System.Windows.Forms;
     14 
     15 namespace Ch0207
     16 {
     17     public partial class Form1 : Form
     18     {
     19         public Form1()
     20         {
     21             InitializeComponent();
     22         }
     23 
     24         private void Form1_Click(object sender, EventArgs e)
     25         {
     26             loadMapDocument();
     27         }
     28 
     29         int flag = 0;
     30         private void button1_Click(object sender, EventArgs e)
     31         {
     32             //点选
     33             flag = 1;
     34         }
     35 
     36         private void button2_Click(object sender, EventArgs e)
     37         {
     38             //圆选
     39             flag = 2;
     40         }
     41 
     42         private void button3_Click(object sender, EventArgs e)
     43         {//矩形
     44             flag = 3;
     45         }
     46 
     47         private void button4_Click(object sender, EventArgs e)
     48         {//多边形
     49             flag = 4;
     50         }
     51 
     52         private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
     53         {
     54             axMapControl1.MousePointer = esriControlsMousePointer.esriPointerCrosshair;
     55             IGeometry geometry=null;
     56             switch (flag)
     57             { 
     58                 case 1://点选
     59                     ESRI.ArcGIS.Geometry.Point point = new ESRI.ArcGIS.Geometry.Point();
     60                     point.X = e.mapX;
     61                     point.Y = e.mapY;
     62                     geometry = point as IGeometry;
     63                     break;
     64                 case 2://圆选
     65                     geometry = axMapControl1.TrackCircle();
     66                     break;
     67                 case 3://矩形
     68                     geometry = axMapControl1.TrackRectangle();
     69                     break;
     70                 case 4://多边形选
     71                     geometry=axMapControl1.TrackPolygon();
     72                     break;
     73 
     74             }
     75             axMapControl1.Map.SelectByShape(geometry,null,false);
     76             axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection,null,null);
     77         }
     78         //加载地图文档
     79         private void loadMapDocument()
     80         {
     81             System.Windows.Forms.OpenFileDialog openFileDialog;
     82             openFileDialog = new OpenFileDialog();
     83             openFileDialog.Title = "打开地图文档";
     84             openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
     85             openFileDialog.ShowDialog();
     86             string filePath = openFileDialog.FileName;
     87             if (axMapControl1.CheckMxFile(filePath))
     88             {
     89                 axMapControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;
     90                 axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
     91                 axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
     92             }
     93             else
     94             {
     95                 MessageBox.Show(filePath + "不是有效的地图文档");
     96             }
     97         }
     98 
     99         private void button6_Click(object sender, EventArgs e)
    100         {
    101             //清楚选择
    102             IActiveView activeView = axMapControl1.Map as IActiveView;
    103             activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,axMapControl1.get_Layer(0),null);
    104             axMapControl1.Map.ClearSelection();
    105             activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, axMapControl1.get_Layer(0), null);
    106         }
    107 
    108         private void button5_Click(object sender, EventArgs e)
    109         {
    110             //名称查询
    111             string name = textBox1.Text.Trim();
    112             ILayer layer = axMapControl1.get_Layer(0);
    113             IFeatureLayer featureLayer = layer as IFeatureLayer;
    114             IFeatureClass featureClass = featureLayer.FeatureClass;
    115             IQueryFilter queryFilter = new QueryFilter();          
    116             IFeature feature = null;//"GNIS_Name" = 'Blue Creek'
    117             queryFilter.WhereClause = "GNIS_Name like '%"+name+"%'";
    118           
    119                 IFeatureCursor featureCursor;
    120                 featureCursor = featureClass.Search(queryFilter, true);
    121                 feature = featureCursor.NextFeature();
    122           
    123             if (feature != null)
    124             {
    125                 axMapControl1.Map.SelectFeature(axMapControl1.get_Layer(0),feature);
    126                 axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection,null,null);
    127             }
    128         }
    129 
    130 
    131      
    132     
    133     }
    134 }
  • 相关阅读:
    Mininet学习指南
    Docker and OverlayFS in practice
    (OK) dnf——install docker on Fedora23
    Running Docker Swarm inside LXC
    ERROR——running docker in CORE on Fedora23
    (OK) dnf
    (OK) simply running CORE & docker on Fedora 23
    北京大学互联网信息工程研发中心(深圳)
    nload
    (OK) CORE
  • 原文地址:https://www.cnblogs.com/rockman/p/3324836.html
Copyright © 2020-2023  润新知