使用.shp作为数据源
- 读取快,但是使用cql_filter过滤的时候因为没有索引,效率比较低
使用postgis作为数据源
- 可以添加sqlView筛选数据
- 也可以通过cql_filter过滤数据
使用ElasticSearch作为数据源
- 查询很快,但是结果会限制返回值的条数,可以通过CQL_FILTER对返回值进行过滤
geoserver源码学习
下载源码
github上去下载代码仓库地址,本次使用的2.19.6版本
安装maven
使用mvn -v查看maven版本号
编译项目
配置好Maven环境变量,在 自己的目录\geoserver-2.19.6\src的目录下使用cmd命令
mvn -DskipTests clean install //跳过测试单元进行构建命令
mvn -DskipTests clean install -P allExtensions //将allExtensions扩展添加到构建种
mvn -DskipTests clean install -P restconfig //将restconfig扩展添加到构建中
//mvn -DskipTests clean install -P restconfig,allExtensions,platform,web //可以同时启用多个扩展名
mvn -DskipTests clean install -P platform
mvn -DskipTests clean install -P web
- 在下载依赖时很可能会报错,大概率是jar包下载不到,这个时候就需要删除maven目录下的文件夹,重新去download,或者指定国内的仓库去下载。
- 如果执行过程中测试方法报错,就跳过测试
# 如果执行过程中测试方法报错,就跳过测试
# 跳过测试单元进行构建命令
mvn -DskipTests clean install
- 然后重新执行命令,直到build success。
geoserver的查看图层时的接口调用
- 项目总入口 org.geoserver.filters.FlushSafeFilter 👉 doFilter 方法
- GeoServer在接收到前端传递来的kvp格式参数后,将从注册到Spring容器中的诸多KvpParser实例中挑出与之最为匹配的,相关挑选规则在KvpUtils.findParser(final String key, final String service, final String request, final String version, Collection parsers)中可以找到