网站首页 > 技术文章 正文
因为一直开发的内容都是基于内网的系统,所以常用的数据库是ORACLE。图形数据也是使用的Oracle Spatial。以前的开发也是很粗暴,直接使用SQL查询,将查询后的数据封装为WKT格式,前台使用Openlayers展示。展示效果如下。
但是在不断的迭代过程中,频繁的修改代码,代码量也越来越大。业务逻辑与图形展示频繁的穿插,后期维护越来越难,且需要前端去绘制每一个图元性能很差。
目前想的是将图形数据全部交给Geoserver来管理。
在使用geoserver发布oracle spatial过程中,出现了一些问题,这里记录一下。
背景:
在数据库中原来的数据格式有两种,第一种是历史迁移过来的数据,这种数据 GTYPE=1或者GTPE=2;一种是后期新建生成的数据,这种数据GTYPE=2001或者GTYPE=2002;主要问题就出现在数据上。
1、下载geoserver,因为我主要是验证,所以我直接下载的Platform Independent Binary这种可以直接运行的包。
- http://geoserver.org/release/stable/(下载页面)
同时需要下载oracle的扩展。我下载的geoserver版本是2.20.1
- 然后将下载后的oracle扩展包 gt-jdbc-oracle-26.1.jar 、ojdbc8-19.10.0.0.jar 放入到 geoserver-2.20.1\webapps\geoserver\WEB-INF\lib 下。
- 在geoserver-2.20.1\bin 下,启动startup.bat。
2、配置oracle数据源。
- 本地访问 http://127.0.0.1:8080/geoserver/web/ ,登录 admin/geoserver。
- 新建数据存储,填上相应的数据库信息。
- 新建图层。选择对应的数据存储,选择对应的数据表,点击发布。图层详情页面计算一下边框,直接保存即可。
- 在图层预览功能页面。找到生成的图层,点寂Openlayers,查看效果。
但是展示效果报错
java.lang.ArithmeticException: / by zero
at org.geotools.data.oracle.sdo.SDO.coordinates(SDO.java:1712)
at org.geotools.data.oracle.sdo.SDO.create(SDO.java:1880)
其实报错的原因就是因为数据库中旧数据的GTYPE=1或者GTYPE=2这种情况导致的。
- 所以我们需要修改源码SDO.java文件。让它判断是旧数据的情况下,将GTYPE+2000。
// SDO.class create(GeometryFactory,int,int, double[],int[],double[]) 增加下面
if(XGTYPE < 1000) {
GTYPE = 2000 + XGTYPE;
}
- 将编译好的class放入到jar包中。
jar uvf gt-jdbc-oracle-26.1.jar org/geotools/data/oracle/sdo/SDO.class
- 重新将jar包放入geoserver-2.20.1\webapps\geoserver\WEB-INF\lib下
再次预览图层
猜你喜欢
- 2024-10-17 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
- 2024-10-17 mybatis中oracle模糊查询like concat报错
- 2024-10-17 如何高效进行Oracle巡检?顺序方法缺一不可
- 2024-10-17 详解4个方法--解决Oracle快照过旧问题
- 2024-10-17 Kettle 连接Oracle rac报ORA-12505错误解决方法
- 2024-10-17 centos7.4安装oracle11GR2报错解决办法
- 2024-10-17 centos安装oracle 11.2.0.1报错的处理方法
- 2024-10-17 详解Oracle数据库如何有效处理失效对象
- 2024-10-17 Oracle常见问题 IMPDP导入时报错:IMP-00034
- 2024-10-17 Java中常见的20个错误及解决方案 java: 错误: 不支持发行版本 6
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)