目录
图层简单介绍
geoserver打开预览图层,styles可以在发布图层的时候添加样式,这里可以选择默认或者添加的样式来为图层添加样式;CQL的筛选语句和sql的语句有点相似,下面主要记录一下CQL的各种筛选。
属性名筛选
1、= (属性名='属性值')
注意:属性值如果为string,则要加引号
例如:region_code='330702'
2、属性名的模糊匹配
匹配规则和sql语句的规则一致
例如:region_code like '3307021%'
3、属性值为number类型
可使用(+、-、*、/、>、<、=等运算方法,以及between···and··· 区间范围)
我们这里介绍一下<,+和between··· and,其他的运算方法是一致的
4、函数过滤
例如:strLength(name) = 4 筛选出name的长度为4的区域
以下是几种常用的函数:
名称 | 参数 | 描述 |
strLength | string | 返回字符串长度 |
strIndexOf | string:String,substring:String | 返回指定字符串在字符串中首次出现的索引,未找到则返回-1 |
strLastIndexOf | string:String,substring:String | 返回指定字符串在字符串中末次出现的索引,未找到则返回-1 |
strSubstring | string:字符串,begin:整数,end整数 | 返回一个新的字符串,是字符串从begin开始到end结束截取的字符串,包含begin,不包含end |
strSubstringStart | string:字符串,begin:整数 | 返回一个新的字符串,是字符串从begin开始到字符串结尾 |
strToLowerCase | string:字符串 | 返回小写的字符串 |
strToUpperCase | string:字符串 | 返回大写的字符串 |
strTrim | string:字符串 | 返回去掉首尾空格的字符串 |
5、空间筛选
判断点所在的区域:CONTAINS(geom,SRID=4326;POINT(${this.longitude} ${this.latitude}))
注意:经纬度之间要添加空格,geom要设置 类型为MultiPolygon,坐标为4326
获取和区域相交:BBOX(geom,左上角经度,左上角纬度,右下角经度,右下角纬度)
geom和上面的一样
获取和区域不相交:disjoint(geom,polygon((119.65073 29.06021,119.69142 29.06021,119.73038 28.95893,119.66858 28.95893,119.65073 29.06021)))
获取和区域相交:intersects(geom,polygon((119.65073 29.06021,119.69142 29.06021,119.73038 28.95893,119.66858 28.95893,119.65073 29.06021)))
disjoint和intersects 刚好相反
注意:polygon中的第一个点和最后一个点要一样,保证是一个完整的区域
获取绘制区域包含的区域: within(geom,polygon((119.65073 29.06021,119.69142 29.06021,119.73038 28.95893,119.66858 28.95893,119.65073 29.06021)))
获取距离某个点一定距离内的区域: DWITHIN(geom,POINT(119.66858 28.95893),10000,meters)
DWITHIN(表达式,表达式,距离,单位);feet :英尺 ;meters :米 ;kilometers : 千米;statute miles :英里;nautical miles :海里;
BEYOND 和DWITHIN 刚好相反,BEYOND是距离某个点大于一定距离的区域,表达式和DWITHIN一样
空间谓词还有一些,例如:TOUCHES,CROSSES,OVERLAPS,EQUALS,RELATE;这些空间谓词项目中没有使用到,就不一一写了,大家可以自行研究一下!