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

空间查询:

项目路径

百度云盘地址下/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();
  11. IFeatureLayer featureLayer = layer as IFeatureLayer;
  12.  
  13. //2.设置查询条件
  14. IQueryFilter queryFilter = new QueryFilter();
  15. // 定义范围
  16. IEnvelope envelope = new Envelope();
  17. envelope.PutCoords(, , , );
  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. }

2.5. 示例截图

图1.属性查询示例图

图2.空间几何查询

PIE SDK矢量数据的查询的更多相关文章

  1. PIE SDK矢量数据的读取

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...

  2. PIE SDK矢量数据的修改

    1.功能简介 目前PIE SDK支持矢量数据的修改或删除,下面对矢量数据的投影转换功能进行介绍. 2.功能实现说明 2.1. 矢量数据的修改 2.2. 实现思路及原理说明 第一步 获取需要修改的矢量数 ...

  3. PIE SDK矢量数据的投影转换

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式 ,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据的投影转换功能,下面对矢量数据的投影转换功能进行介绍. 2 ...

  4. PIE SDK矢量数据简单渲染

    1. 功能简介 PIE SDK对数据的符号化分为矢量数据渲染和栅格数据渲染两大类. 目前PIE SDK中针对矢量数据渲染包括简单渲染.唯一值渲染.分级渲染.自定义渲染:针对栅格数据渲染包括拉伸渲染.R ...

  5. PIE SDK矢量数据空间索引的创建

    1. 功能简介 空间索引的使用便于数据的查询:所以在创建矢量数据的时候创建空间索引,下面对矢量数据如何创建空间索引进行功能介绍. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 创建矢量要素 ...

  6. PIE SDK矢量数据的创建

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...

  7. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  8. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  9. PIE SDK组件式开发综合运用示例

    1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...

随机推荐

  1. javascript总结13:循环语句

    1 While循环 While(条件表达式){ 只要条件表达式结果为true,循环一直执行,当条件表达式结果为false的时候,循环终止 } While循环语句需现在循环体外定义变量. 2 for循环 ...

  2. Java反射学习:深入学习Java反射机制

    一.Java反射的理解(反射是研究框架的基础之一) Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的 ...

  3. 《Servlet和jsp学习指南》 笔记2

    chapter 13 请求和响应的装饰 初步了解Decorator模式: 在不修改一个对象的类的源码的情况下,装饰这个对象的行为. chapter 14 异步处理 异步Servlet和Filter,只 ...

  4. OC语言自定义打印

    1.为了全文通用,选择在PCH文件中写: // // 版权所有:Copyright © 2018年 Lelight. All rights reserved. // 创 建 者: Lelight // ...

  5. C语言条件编译(#if,#ifdef,#ifndef,#endif,#else,#elif)

    1.条件编译介绍 条件编译(conditional compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码.例如,可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源代 ...

  6. 第五篇 Python内置函数

    内置函数 abs() delattr() hash() memoryview() set() all()    dict()  help() min() setattr() any()  dir()  ...

  7. 关于windows上 web 和 ftp 站点的创建及使用

    关于windows上 web 和 ftp 站点的创建及使用 引言 其实这是我网络基础课上的一次作业,觉得挺实用的,遂写成博客分享,也算是对这次作业的一次总结. 实验目的 通过此实验掌握WEB和FTP站 ...

  8. 模板【洛谷P3812】 【模板】线性基

    P3812 [模板]线性基 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大. code: #include <iostream> #include <cs ...

  9. P2645 斯诺克 题解

    P2645 斯诺克 题目背景 镇海中学开设了很多校本选修课程,有体育类.音乐类.美术类.无线电测向.航空航海航天模型制作等,力争使每位学生高中毕业后,能学到一门拿得出手的兴趣爱好,为将来的终身发展打下 ...

  10. Python数组(二)

    一.函数list 可将任何序列(如字符串)作为list的参数.list实际上是一个类,而不是函数. test=['java','C#','C','C++'] print(list(test)) ——& ...