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

时间:2016-05-20 14:56:15

标签: java mongodb geojson geoserver

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

以下是我正在做的事情:

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

我是GeoServer的新手,尽管我能想到的各种方式都在搜索,却无法找到有关GeoServer MongoDB插件的文档。我被告知我可以用它来为GeoServer编写自己的MongoDB扩展。在我沿着这条路走下去之前,我希望能找到一些关于这方面的文档,或者示例一些人可能会如何使用它。我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

如果有人遇到与我相同的问题,这是一个解决方案。

在深入了解插件代码之后,我意识到该插件需要在mongo上存在一些存储的javascript函数。我找到了关于在Jar文件中安装它们的javascript文件和说明。然而,即使在安装javacript函数之后它也行不通(我猜测是因为我的mongodb版本和驱动程序调用函数的方式不兼容,但这主要是猜测。我没看到。因为我找到了一个可行的解决方案,但我认为这应该适用于2.4之前的mongodb版本,或者你必须改变驱动程序。)

虽然我正在考虑修改驱动程序以适应这种情况,但我发现BoundlessGeo发布的驱动程序更新,工作速度更快,更易于使用。

这是geitherver-exts的github repo:https://github.com/boundlessgeo/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