java 通过GeoServer在MongoDB中提供地理空间数据

vuktfyat  于 2023-05-15  发布在  Java
关注(0)|答案(1)|浏览(327)

我将地理空间数据存储在MongoDB数据存储中,我希望通过GeoServer提供服务,以便可以通过WFS,WMS等使用数据。我能够安装GeoServer并插入与GeoTools打包在一起的gt-mongodb插件,还可以安装Java的MongoDb驱动程序。在这样做之后,我能够在添加数据存储时将Mongo作为一个选项。但是,在创建新的MongoDB存储后,我无法创建新的矢量层;我继续得到以下错误:“无法创建矢量层:null”。
这是我正在做的:

  • 在数据部分,我点击“层”
  • “添加新资源”
  • 从下拉列表中选择我创建的mongodb存储
  • “创建新要素类型”
  • “添加新属性”并从我的数据中添加几个字段
  • 输入“类型名称”并单击保存。

我是GeoServer的新手,尽管用我能想到的各种方式进行了搜索,但无法找到有关MongoDB GeoServer插件的文档。有人告诉我,我唯一的选择可能是为GeoServer编写自己的MongoDB扩展。在我走上这条道路之前,我希望能找到一些关于这方面的文档或一些例子,看看有人是如何让它工作的。我很感激任何帮助。

pkln4tw6

pkln4tw61#

如果有人遇到和我一样的问题,这里有一个解决方案。
在深入研究了插件代码之后,我意识到该插件期望mongo上存在一些存储的javascript函数。我在Jar文件中找到了JavaScript文件和安装说明。然而,即使安装了javacript函数,它也不能工作(我猜是因为我的mongodb版本和驱动程序调用函数的方式不兼容,但这主要是一个猜测。我没有深入研究它的根本问题是什么,因为我找到了一个可行的解决方案,但我认为这应该适用于mongodb 2.4之前的版本,否则你必须修改驱动程序。
当我考虑修改驱动程序以在这种情况下工作时,我发现BoundlessGeo发布了一个更新的驱动程序,它工作得更快,更容易使用。
以下是Github repo:https://github.com/boundlessgeo/geoserver-exts用于geoserver-exts。说明在自述文件中,但基本上你“git clone”,然后执行“mvn install”,它会为你构建驱动程序(驱动程序jar应该看起来像这样:gt-mongo-15-SNAPSHOT.jar)。
安装说明可以在这里找到:https://github.com/boundlessgeo/suite/blob/master/docs/usermanual/source/dataadmin/mongodb/store.rst#id19。

相关问题