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. CodeBlocks调试功能(转)

    转自:迂者-贺利坚 http://blog.csdn.net/sxhelijian/article/details/15026159 示例代码: #include <iostream> u ...

  2. 黑盒测试实践--Day5 11.29

    黑盒测试实践--Day5 11.29 今天完成任务情况: 分析系统需求,完成场景用例设计 小组负责测试的同学学习安装自动测试工具--QTP,并在线学习操作 小黄 今天的任务是完成场景测试用例的设计.在 ...

  3. JavaScript 组件编写

    说明 这是一个联系人名过滤组件,还提供可选的"大小写是否敏感"选项,默认大小写不敏感. 一.HTML 结构 <ul class="contacts"> ...

  4. 2.8.3 并发下诡异的HashMap

    package 第二章.并发下诡异的HashMap; import org.junit.Test; import java.util.HashMap;import java.util.Map;impo ...

  5. Jackson Streaming API to read and write JSON

    Jackson supports read and write JSON via high-performance Jackson Streaming APIs, or incremental mod ...

  6. JAVA的IO处理【转】

    I/O简介 IO是输入和输出的简称,在实际的使用时,输入和输出是有方向的.就像现实中两个人之间借钱一样,例如A借钱给B,相对于A来说是借出,而相对于B来说则是借入.所以在程序中提到输入和输出时,也需要 ...

  7. Sublime Text 2插件推荐

    必装Package Control 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码: import urllib2,os; pf='Package ...

  8. spring mvc 框架启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal 解决办法

    今天准备将以前自己搭建的一个框架拿出来用一下,结果发现启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/Elem ...

  9. 第十二篇 os模块

    Python的os模块提供了系统相关,目录,文件操作,执行命令等操作. 1.文件和目录操作相关的方法: 方法 说明 os.mkdir 创建目录 os.rmdir 删除目录 os.rename 重命名 ...

  10. day02.3-元组内置方法

    元组——tuple的定义:test = (11,"alex",(22,33),[44,55],True) 特点:1. 元组是可迭代对象 2. 元组中元素是有序的,但其不可修改,也不 ...