zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    vi 命令
    element-ui + el-dialog + Vue.component 注册的tinymce富文本控件 第二次及以后打开dialog出现问题解决方法
    【经典数据结构】哈希表
    TCP建立连接与释放连接过程中的几个问题
    【算法题目】求二叉树中节点的最大距离
    字符串处理函数
    [LeetCode] Balanced Binary Tree
    [LeetCode] N-Queens II
    [LeetCode] N-Queens
    【linux使用】bash shell命令行常用快捷键
  • 原文地址:https://www.cnblogs.com/rockman/p/3324836.html
Copyright © 2011-2022 走看看