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

示例代码

          /// <summary>
/// 矢量数据集属性查询
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_QueryAttribute_Click(object sender, EventArgs e)
{
//1.首先要获取图层要素
IMap map = mapControlMain.FocusMap;
ILayer layer = map.GetLayer();
IFeatureLayer featureLayer = layer as IFeatureLayer; //2.设置查询条件
IQueryFilter queryFilter = new QueryFilter();
string filter = "NAME='北京'";
queryFilter.SetAttributeQuery(filter); //3.得到查询结果
IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter);
IFeature feature = null;
feature = featureCursor.NextFeature(); //清除之前查询高亮显示的结果
map.ClearSelectionFeatures();
//4.地图显示得到的结果
if (feature != null)
{
mapControlMain.FocusMap.SelectFeature(featureLayer as ILayer, feature);
} mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

空间查询:

项目路径

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

数据路径

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

视频路径

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

示例代码

         /// <summary>
/// 矢量数据集空间查询
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_QuerySpatial_Click(object sender, EventArgs e)
{
//1.首先要获取图层要素
IMap map = mapControlMain.FocusMap;
ILayer layer = map.GetLayer();
IFeatureLayer featureLayer = layer as IFeatureLayer; //2.设置查询条件
IQueryFilter queryFilter = new QueryFilter();
// 定义范围
IEnvelope envelope = new Envelope();
envelope.PutCoords(, , , );
queryFilter.SetSpatialQuery(envelope as IGeometry); //3.得到查询结果
IFeatureCursor featureCursor = featureLayer.FeatureClass.Search(queryFilter);
IFeature feature = null;
feature = featureCursor.NextFeature(); //4.地图显示得到的结果
map.ClearSelectionFeatures();
while (feature != null)
{
mapControlMain.FocusMap.SelectFeature(featureLayer as ILayer, feature);
feature = featureCursor.NextFeature();
} mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

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. Why does my Authorize Attribute not work?

    the roles of a ClaimsPrincipal are actually just claims create with a type of ClaimsIdentity.RoleCla ...

  2. jQuery bind() live()

    <script type="text/javascript"> $(document).ready(function () { /*$('.clickme').live ...

  3. 《C#多线程编程实战》2.3 Mutex

    这个真的是大坑. 如果深入研究,像是同步域,上下文这类都会出现. 但是书上有没有讲. 完全不知道什么意思. 勉勉强强讲这个Mutex的用法搞明白了. 这个是原书代码: class Program { ...

  4. windows如何通过端口查看对应程序

    今天打开SSR报错,说端口被占用. 打开的软件有点多,又不想重启.就需要找到占用的软件,关闭了即可. 打开cmd,输入netstat -aon能看到所有的使用端口 其中1080端口是预留给SSR使用的 ...

  5. Google的C++代码规范

      英文版:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml 中文版:http://zh-google-styleguide ...

  6. jeecms学习笔记

    jeecms学习笔记 内容管理系统 1.栏目列表标签 作用:获取栏目的列表 [@cms_channel_list] [#list tag_list as b] <a href="${b ...

  7. Python3之shutil模块

    一. 简介 shutil 是高级的文件,文件夹,压缩包处理模块. 二. 使用 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 import ...

  8. DATE类型数据在MySql中减一天的问题

    最近在开发一个教务管理系统,数据库中有教师表(Teacher).学生表(Student)等,其中属性:出生日期(Birthday)为DATE类型. 在执行更新教师操作时,发现未改动教师的出生日期但更新 ...

  9. Centos7服务器启动jar包项目最佳方式

    jar后台运行:nohup java -jar xx.jar >/dev/null & 此处的“>/dev/null”作用是将终端输出信息输出到空洞中,即不保存输出信息,若要查看输 ...

  10. 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)

    1.TabLayout介绍 TabLayout提供了一个水平的布局用来展示Tabs,很多应用都有这样的设计,典型的有网易新闻,简书,知乎等.TabLayout就可以很好的完成这一职责,首先TabLay ...