4.1. MapServer查询机制

  • 更新时间:2022-10/7

除了渲染功能,MapServer还提供了强大的查询功能,并支持空间查询(基于位置的选择)和属性查询(基于属性值的选择)。为了在没有编程支持的情况下做到这一点,MapServer广泛使用模板来构建查询和显示结果。这导致了MapFile、模板和MapServer程序之间的一些复杂交互。还有很多不同的查询方法和使用模板的不同方式。出于这些原因,MapServer的查询工具可能是最令人困惑的方面。

MapServer具有强大而复杂的查询功能,但在CGI模式下,它缺乏真正GIS所能提供的分析工具。本概述介绍了MapServer的一些查询功能。

4.1.1. 空间检索概念

空间查询是地理数据库和空间数据库支持的一种特殊查询方式。空间查询在许多重要方面不同于非空间SQL查询。两个最重要的区别是:使用点、线、面等几何类型数据,以及涉及几何类型之间的空间关系查询。

以二维或三维空间数据作为查询的基础,将查询结果图形化表示;空间查询语句由一个或多个空间运算算子组成,包括表示空间关系的谓词。

空间查询和分析是地理信息系统的核心,而地理信息系统项目中的大部分日常任务都与查询有关。地理信息系统的查询类型可以分为以下三种类型:简单属性查询、与空间位置相关的查询、与空间位置与属性相关的联合查询。

在MapServer中实现空间检索的基本要求

查询模板是一个HTML片段,当由MapServer CGI程序放置在一起时,它是一个合适的HTML界面。

以下两个变量是用户定义的变量。如果标记定义为 [] 在方括号中找到,MapServer将把它的值传递给HTML模板。

maplayer 变量是地图应用程序所需的交互式MapServer变量。

传递的变量 map_web 将取代 TEMPLATE 参数的Mapfile的Web对象中。此变量不同于用户定义的变量。