空间查询是指通过几何对象之间的空间位置关系构建过滤条件,从已有的数据中查询出满足过滤条件的对象,同时支持对查询对象设置查询距离。目前支持点、线、面几何对象的空间查询功能。
只要当前地图窗口中存在非空的点、线、面、文本、CAD 数据集,“空间查询”按钮即为可用状态。当“空间查询”对话框打开后,也可在地图窗口中选择搜索对象。
当地图窗口中已经选择了搜索对象后,“空间查询”对话框上方的“搜索图层”下拉列表中,显示出了所有选中的搜索对象所在图层。用户可单击“搜索图层”下拉箭头,在下拉列表中指定搜索对象所在的一个搜索图层。
在被搜索图层列表中显示了当前地图窗口中,能够进行空间查询的所有图层(包括所有非空的点、线、面、文本、CAD)。通过勾选各图层列表中复选框,可确定是否对该图层执行空间查询操作。
设置空间查询条件:在被搜索图层列表中,单击“空间查询条件”下拉按钮,在下拉列表中选择一个系统支持的空间查询算子。选择了一个空间查询算子后,“算子描述”区域会对选中的算子予以图示和解释说明。目前,应用程序支持的空间查询算子共有8种,具体内容请参阅 空间查询基本算子。
设置属性查询条件:在被搜索图层列表中,单击“属性查询条件”下拉按钮,在下拉列表中单击“表达式...”命令,弹出“SQL 表达式”对话框,构建被搜索图层的属性字段查询条件。例如要查询一条河流经过的,并且人口数量大于100万的城市,则SQL 表达式中可以设置该城市的人口字段>1000000。 如果不需要属性控制条件,则此项可以保持为空,则相应图层的查询结果为所有符合空间查询条件的对象。
注意:部分空间查询条件对设置查询距离不生效。下表为每种查询条件是否支持设置查询距离详细描述:√表示支持设置查询距离;×表示设置查询距离不生效;--表示不支持的查询算子。
查询对象 | 被查询对象 | 交叉 | 包含 | 被包含 | 重叠 | 分离 | 邻接 | 重合 | 相交 |
点 | 点 | -- | √ | × | -- | √ | -- | × | √ |
线 | -- | -- | × | -- | √ | × | -- | √ | |
面 | -- | -- | √ | -- | √ | × | √ | √ | |
线 | 点 | -- | √ | -- | -- | √ | × | -- | √ |
线 | × | √ | × | × | √ | × | × | √ | |
面 | × | -- | √ | -- | √ | × | -- | √ | |
面 | 点 | -- | √ | -- | -- | √ | × | -- | √ |
线 | -- | √ | -- | -- | √ | × | -- | √ | |
面 | -- | √ | √ | √ | √ | × | × | √ |
保存查询结果:勾选“保存查询结果”复选框,可将查询结果保存为新的数据集。
只保存空间信息:勾选“只保存空间信息”复选框,设置只保存查询结果的空间信息,不保存其属性信息。
对某道路进行扩建,需要查询出该道路两侧30m 范围内需要拆迁的居民区。选择待扩建道路为查询对象,居民区面数据集设置为被查询对象,空间查询条件设置为相交_线面,设置查询距离为30m,查询结果则为查询范围内相交的面对象(蓝色框),查询结果如下图所示。