geoserver mysql数据源_geoserver使用mysql数据源的注意事项

本文介绍了在GeoServer中使用MySQL数据源时遇到的三个问题及其解决方案。问题包括:数据空间字段不能有空值、分页搜索无效、多边形搜索结果错误。针对这些问题,提出了修改表结构、源码修复和检查MySQL版本等解决策略。
摘要由CSDN通过智能技术生成

由于项目中使用的数据库是mysql,为了保证数据同步,geoserver也需要使用mysql数据源。

(GIS服务引擎也是因为ArcGIS不支持mysql才转到geoserver的)

geoserver的开源性质,决定了他难免会有BUG,好在有源码,修复起来不算麻烦。

BUG 1:

配置的图层数据空间字段不能有空值,否则会抛出边界范围无法计算的错误。导致图层完全无法使用。

解决方案:

在表图层的空间字段上增加默认值属性。

视图则需要增加函数转换如:create view V_POINTS AS SELECT COALESCE (pt.GEOM,ST_GEOMFROMTEXT (‘POINT(0 0)‘,4326)) as GEOM FROM POINTS

BUG 2:

分页搜索形同虚设,WFS查询中GEOSERVER独创的startIndex,maxFeatures分页搜索确实好用。但在mysql插件中则会出现数据查询结果不符或干脆为0条结果。

其根本原因是在做SQL映射时,未将过滤where条件写到查询语句中。修改方法也很简单,找到gt-jdbc-mysql-version.jar, 修改MySQLFilterToSQL.java源文件。估计是原作者的疏忽。只添加了空间查询过滤,而忽略了一般的DBMS sql过滤。caps.addAll(SQLDialect.BASE_DBMS_CAPABILITIES)@Override

protected FilterCapabilities createFilterCapabilities() {

//MySQL does not actually implement all of the special functions

Filter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值