zoukankan      html  css  js  c++  java
  • PIE SDK矢量数据的查询

     

    1.功能简介

        矢量数据查询有属性查询和空间几何查询,下面对矢量数据的属性查询和空间查询做介绍

    2.功能实现说明

    2.1. 矢量数据的属性和空间查询

    2.2. 实现思路及原理说明

    第一步

    得到要查询的图层

    第二步

    设置属性/空间查询条件

    第三步

    根据查询条件进行查询并在地图中高亮显示

    2.3.  核心接口与方法

    接口/类

    方法/属性

    说明

    IQueryFilter

    SetAttributeQuery()

    设置属性条件

    IQueryFilter

    SetSpatialQuery();

    设置空间条件

    IFeatureClass

    Search(IQueryFilter filter);

     查询

    IFeatureCursor

    NextFeature()

    获得下一个要素

    2.4. 示例代码

    属性查询:

    项目路径

    百度云盘地址下/PIE示例程序/04数据操作/04矢量数据的查询

    数据路径

    百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

    视频路径

       百度云盘地址下/PIE示例程序/04数据操作/04矢量数据的查询.avi

    示例代码

     1          /// <summary>
     2         /// 矢量数据集属性查询
     3         /// </summary>
     4         /// <param name="sender">事件触发器</param>
     5         /// <param name="e">事件参数</param>
     6         private void toolStripButton_QueryAttribute_Click(object sender, EventArgs e)
     7         {
     8             //1.首先要获取图层要素
     9             IMap map = mapControlMain.FocusMap;
    10             ILayer layer = map.GetLayer(0);
    11             IFeatureLayer featureLayer = layer as IFeatureLayer;
    12 
    13             //2.设置查询条件
    14             IQueryFilter queryFilter = new QueryFilter();
    15             string filter = "NAME='北京'";
    16             queryFilter.SetAttributeQuery(filter);
    17 
    18             //3.得到查询结果
    19             IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter);
    20             IFeature feature = null;
    21             feature = featureCursor.NextFeature();
    22 
    23             //清除之前查询高亮显示的结果
    24             map.ClearSelectionFeatures();
    25             //4.地图显示得到的结果
    26             if (feature != null)
    27             {
    28                 mapControlMain.FocusMap.SelectFeature(featureLayer as ILayer, feature);
    29               }            mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
    30         }
    View Code

    空间查询:

    项目路径

    百度云盘地址下/PIE示例程序/04数据操作/04矢量数据的查询

    数据路径

    百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

    视频路径

       百度云盘地址下/PIE视频教程/04数据操作/04矢量数据的查询.avi

    示例代码

     1         /// <summary>
     2         /// 矢量数据集空间查询
     3         /// </summary>
     4         /// <param name="sender">事件触发器</param>
     5         /// <param name="e">事件参数</param>
     6         private void toolStripButton_QuerySpatial_Click(object sender, EventArgs e)
     7         {
     8             //1.首先要获取图层要素
     9             IMap map = mapControlMain.FocusMap;
    10             ILayer layer = map.GetLayer(0);
    11             IFeatureLayer featureLayer = layer as IFeatureLayer;
    12 
    13             //2.设置查询条件
    14             IQueryFilter queryFilter = new QueryFilter();
    15             // 定义范围
    16             IEnvelope envelope = new Envelope();
    17             envelope.PutCoords(110, 30, 115, 40);
    18             queryFilter.SetSpatialQuery(envelope as IGeometry);
    19 
    20             //3.得到查询结果
    21             IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter);
    22             IFeature feature = null;
    23             feature = featureCursor.NextFeature();
    24 
    25             //4.地图显示得到的结果
    26             map.ClearSelectionFeatures();
    27             while (feature != null)
    28             {
    29                 mapControlMain.FocusMap.SelectFeature(featureLayer as ILayer, feature);
    30                 feature = featureCursor.NextFeature();
    31             }          mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
    32         }
    View Code

    2.5. 示例截图

     

    图1.属性查询示例图

      

    图2.空间几何查询

  • 相关阅读:
    MySQL通过RPM安装
    HDU4279(2012年天津网络赛---数论分析题)
    Redis实战
    顺序环形队列的各种基本运算
    cocos2d_随手篇1_关于ccTouchBegan的调用
    URAL 1019
    Redis实战之Redis + Jedis
    dataGridView控件--未将对象引用设置添加到对象的实例
    创建 router 连通 subnet- 每天5分钟玩转 OpenStack(100)
    配置 L3 agent
  • 原文地址:https://www.cnblogs.com/PIESat/p/10168580.html
Copyright © 2011-2022 走看看