作者:xinxin

   数据查询在GIS工程项目中处于核心地位,也是基础功能,在使用GIS数据时,我们经常需要从已有的数据中查询出部分满足特定条件的数据。按查询方式将数据查询分为属性查询和空间查询,下面小编将结合SuperMap iDesktop产品分享这两种查询的使用。

1、 属性查询

   属性查询又叫SQL查询,是指根据已有数据中某些特定的属性值作为过滤条件,查询出满足该过滤条件的数据,与空间位置无关。在SuperMap iDesktop中支持查询的数据类型有:点、线、面、文本、CAD、属性表、三维点、三维线、三维面、网络和路由数据集。

在SuperMap iDesktop中打开数据后,选择【空间分析】选项卡 > 【查询】组中的【SQL查询】,弹出“SQL查询”对话框,查询模式默认选“查询空间和属性信息”,如下图所示:

gis中怎么查看python gis数据查询_字段


下面将根据上述截图介绍各个参数含义和操作:

参与查询的数据: 可以查看当前工作空间中已有的数据源和数据集,然后选择一个数据集,即为要进行SQL查询的数据。

字段信息: 显示被选择的数据集的字段信息,默认隐藏了系统字段,可以不勾选【隐藏系统字段】,其中“”表示该数据集的所有字段。查询字段、分组字段、排序字段以及构建条件表达式都可从字段信息框中选择字段。在字段信息列表的最下方有"设置关联字段",双击“关联字段”按钮弹出“连接表设置”对话框,可以设置使用关联属性表中的字段来进行查询。注意:设置了关联属性表后,SQL 查询中相关查询字段、查询条件、分组字段等,若用到存储在 PostGIS 数据库中的矢量数据,表名需要加上双引号。
查询模式: 分为查询空间和属性信息、查询属性信息。前者查询结果保留空间和属性信息,后者只保留属性信息;若不保存查询结果,后者的查询速度会快一些。
运算符号、常用函数: 提供用于构造 SQL 查询条件的运算符号和常用函数,用户可以单击下拉列表,选择相应的运算符号和函数。常用函数包括聚合函数、数学函数、字符函数及日期函数。有关运算符号和常用函数的详细说明可以参考iDesktop的联机帮助文档。
获取唯一值: 用于显示某一字段的所有值,方便用户查看这个字段有哪些记录值。用户在“字段信息”栏选中字段后,单击“获取唯一值”按钮可以将这个字段的值(不含重复值)罗列到下面的列表框中,也可以在定位标签右侧的文本框中输入感兴趣的字段值,系统会在列表框中实时定位。例如,如果一个字段的值为从1到100的数字,在此输入50,则下面的列表框会自动定位到50。同时,在构造查询条件时,双击列表中的字段值也可以直接出现在查询条件中。
定位: 在获取某一字段的所有值后,可以在定位标签右侧的文本框中输入某一字段值,会在字段值列表框中实时定位到该字段值。注意:只有选中某一字段,并获取了该字段的唯一值后,定位功能才能使用。
查询字段: 列出要查询的字段,各个字段以英文的逗号分隔,这些字段会出现在结果数据集中。
用户添加查询字段有三种情况:
(1) 光标定位到查询字段后的文本框中,在左下角字段信息框中双击选择字段,默认情况下是“数据集.属性字段”的格式。如想将查询结果单独保存为一个新的字段中,可以使用“数据集.属性字段 as 数据集.属性字段”语句,as 后的内容用来自定义查询结果中字段的名称。
(2) 光标定位到查询字段后的文本框中,选择列表中的第一个字段(带“
”号)使结果中保留所有字段。

(3) 光标定位到查询字段后的文本框中,选择“常用函数”生成字段的表达式。

查询条件: 指定查询条件表达式。用户将光标定位到查询条件后的文本框中,可以直接输入,也可以通过从字段信息、运算符号和常用函数下拉列表框中选择相关系信息来构造查询条件表达式。注意:查询条件可保留上一次的查询记录,用户可在历史查询条件的基础上,继续修改查询条件,进行多次查询。

查询条件的构造有两种情况:

(1)对于使用常用函数构造的查询条件,不同数据引擎对各函数支持的程度有所不同,具体SQL查询函数可以参考iDesktop的帮助文档说明。

(2)对于直接输入的查询条件,可根据当前数据源的引擎类型所支持的函数来指定,具体SQL查询的表达式可以参考iDesktop的帮助文档说明。

分组字段: 将查询结果中的记录按指定字段来分组,所以分组字段必须是查询字段之一。同时,聚合函数也是对同一组内的数据进行统计计算的。用户将光标定位到分组字段后的文本框中,从字段信息列表中选择字段。

排序字段: 查询结果属性表将根据该字段的指定顺序排列记录,可依据多个不同字段进行升序或降序排列。当指定多个排序字段时,系统首先按第一个字段对记录排序,当第一个字段有相同值的记录,就按其第二个字段的值进行排序,依此类推,最后得到按照这个顺序排列的查询结果。

   用户可将光标定位到排序字段的文本框中,双击文本框,新增一条排序字段,并在文本框下拉菜单中指定具体字段,同时支持输入排序字段。或从字段信息列表中选择字段,默认情况下是升序。用户可以单击升序字样,出现升序与降序的选择列表,进行选择设置。每一行行尾处有删除按钮,单击该按钮,删除该行排序信息。

结果显示: 用于设置结果的显示情况。

1) 浏览属性表:选中此项,则查询结果以属性表形式打开。

2) 地图中高亮:选中此项,则可在地图窗口中高亮显示查询到的结果。此选项可设置的前提条件是:当前地图窗口中存在着被查询数据集;查询模式为“查询空间和属性信息”。

3) 场景中高亮:选中此项,则可在场景窗口中高亮显示查询到的结果。此选项可设置的前提条件是:当前场景窗口中存在着被查询数据集;查询模式为“查询空间和属性信息”。

保存查询结果: 用于设置是否将查询结果保存为新的数据集。

导入: 用来导入 SQL 查询模板(.xml)文件。导入后,会根据 SQL 模板文件中记录的查询语句和查询条件,自动填写 SQL 查询界面的相应参数,用户单击“查询”按钮,即可完成 SQL 查询。
导出: 用来将 SQL 查询对话框中设定的查询条件和参数等信息保存为 SQL 查询模板(
.xml)文件,并进行输出,保证用户下次可以继续使用。

2、空间查询

   空间查询是指通过几何对象之间的空间位置关系构建过滤条件,从已有的数据中查询出满足过滤条件的对象。在SuperMap iDesktop中按查询数据不同分为:二维空间查询和三维空间查询。二维空间查询目前支持点、线、面几何对象的空间查询功能;三维空间查询支持点、模型对象的空间查询。下面分别介绍二维空间查询和三维空间查询。

2.1 二维空间查询

在SuperMap iDesktop中打开数据后,选择【空间分析】选项卡 > 【查询】组中的【二维空间查询】,弹出“空间查询”对话框,如下图所示:

gis中怎么查看python gis数据查询_空间查询_02


截图中各个参数的介绍和操作如下:

搜索图层: 必须要有一个或者多个对象被选中(如截图中选中的高亮面对象)。

被搜索图层: 列表中显示的为被搜索图层,需要那个图层被搜索查询就直接勾选,并设置对应的空间查询条件和属性查询条件,鼠标放在对应的框中有下拉框或者弹框,设置对应的过滤条件即可。

保存查询结果: 可以设置查询结果数据集名和存储的数据源名,如果勾选了“只保存空间信息”,那么查询结果数据集中只保存几何信息,自定义的属性信息不被保存。

结果显示: 二维空间查询结果数据可以在属性表中浏览查看,也可以在地图窗口中高亮显示。

2.2 三维空间查询

   在SuperMap iDesktop中只有当场景中存在非空的三维点或模型数据集时“三维空间查询”才高亮可用,选择【空间分析】选项卡 > 【查询】组中的【三维空间查询】,弹出“三维空间查询”对话框,如下图所示:

gis中怎么查看python gis数据查询_空间查询_03


其中各个参数的操作和二维空间查询中类似,这里就不再赘述。

结语

   在SuperMap iDesktop中进行属性查询时,根据功能需求设置对应的SQL语句,注意不同的引擎类型中的数据集的查询的SQL语句表达式略有不同,可以参考iDesktop的帮助文档,上面有详细介绍;而进行空间查询时搜索图层和被搜索图层对应的数据集坐标系要一致,且搜索图层中要有对象被选中后,被搜索图层中才可以设置空间关系。