GeoServer发布Oracle Spatial图层

本贴最后更新于 3341 天前,其中的信息可能已经东海扬尘

首先,到geoserver官网http://geoserver.org/release/maintain/下载geoserver的war包,丢到web容器(比如tomcat)中,启动web容器。以tomcat为例,一切正常的话,启动完成后访问http://localhost:8080/geoserver就可以看到geoserver的管理界面了:(默认的登录账号是admin ,密码geoserver)

 


由于geoserver本身不支持Oracle Spatial,所以我们要先安装插件:
到https://sourceforge.net/projects/geoserver/files/GeoServer/ 下载相应版本的插件
一般路径为:  /版本号/extensions/geoserver-xxx-oracle-plugin.zip/

下载解压后得到的jar包,连同ojdbcX.jar一起丢到geoserver\WEB-INF\lib下,重启tomcat

至此,GeoServer发布Oracle Spatial图层所需的环境准备完毕。

 

-------------------------------------------------------

 


一般发布图层的流程是:
1、建立一个工作区,作为地图、数据等内容的存放仓库;
2、建立一个数据存储,作为地图的数据源;
3、在数据存储的基础上,建立一个图层;
4、配置图层的样式等。

这些功能,在管理界面的左侧都能找到:

 

在此之前,如果没有Oracle Spatial空间表,可按http://database.51cto.com/art/201108/284867.htm这个帖子中的例子建一个

感觉oracle spatial在插入数据时并没有做很严谨的校验,例如向二维对象中添加三围坐标、多边形的ring不闭合这些问题在插入时不会校验,而geoserver查询时会抛出异常。

所以,数据导入完成后,可以用这条sql:

select SDO_UTIL.to_wktgeometry(shape) from WMS_DISASTER_VISUAL t 

测试一下是否所有的shape都能转为WKT,若有问题逐一处理。


建立工作区:
工作区->添加新的工作区->输入名称和命名空间->提交

 


建立Oracle Spatial数据存储
数据存储->新建数据源->选择s矢量数据源下的Oracle NG,到达新建矢量数据界面
工作区选择刚才新建的工作区,取一个数据源名称,填写oracle的连接参数、性能参数等。
注意:Geometry metadata table这一项最好填上,对应Oracle Spatial的几何元数据表,一般表名是:user_sdo_geom_metadata

 

 

建立图层
图层->添加新的资源->新建图层->选择一个数据存储->配置新的sql视图,到达sql视图界面。
输入视图名称和sql(例如:select id,area_name,shape from WMS_DISASTER_VISUAL)。
把“Guess geometry type and srid”勾上,点击刷新,稍等片刻,就能加载出sql中的字段了,点击保存,完成图层的发布。

 

界面将自动跳转到编辑图层界面,输入图层全图范围,也可依次点击“从数据中计算”、“Compute from native bounds”自动得到。

样式配置位于“发布”选项卡下,可以点击Styles进行自定义样式的配置,各样式xml标签我也还没理清楚--、慢慢摸索中,同时,要素标注(Lable)配置于样式中,设置了字体的话可能会导致中文乱码,这个问题也需要摸索一下。。

 

设置其它参数并保存,图层的发布就完成了。

完成后,可以点击Layer Preview,在一个openlayers的地图中预览图层:

 

 (本文发布于http://www.wowtools.org/blog,转载请注明出处/)

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • zempty via U9500

    为什么会有 GIS 的标签呢?这是为什么呢?

推荐标签 标签

  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 197 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 1 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 642 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 394 关注
  • 印象笔记
    3 引用 • 16 回帖 • 2 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    440 引用 • 1238 回帖 • 593 关注
  • danl
    176 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 50 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 2 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 566 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 564 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 465 关注
  • Outlook
    1 引用 • 5 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 3 关注
  • OneNote
    1 引用 • 3 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 444 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 737 关注
  • Access
    1 引用 • 3 回帖 • 2 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 26 关注
  • Word
    13 引用 • 41 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 507 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    59 引用 • 25 回帖 • 3 关注