6

I'm a bit lost about NoSQL and applications using GIS.

My aim, to sum it up quickly, is to store geospatial object into a MongoDB database and display them into a map via OpenLayers. Is it possible to retrieve geospatial data directly from MongoDB and display them into OpenLayers after someone requested it into the application, or have I to use inevitably a server than can handle geospatial data like GeoServer ?

It seems that MongoDB and GeoServer are quite hard to plug, and even if I found a driver it needs further development and I have no time.

If you have some examples, I'll be glad to take a look. Or If you have some documentation for the driver mentioned above, I'll be glad too :-).

6
  • 1
    GeoServer +MongoDB Slideshare slideshare.net/mongodb/mongo-db-dc2013mongogeoserverfinal
    – Mapperz
    Commented Oct 9, 2013 at 14:26
  • Thanks for your fast answer. I already know this slidershare presentation, it was the start of my reflexion. But it doesn't provide help on how to use the plug-in and unfortunately I did not find any documentation anywhere. I even tried to send an email to the authors of this presentation but they never answered back :( Commented Oct 9, 2013 at 14:49
  • see: osgeo-org.1560.x6.nabble.com/MongoDB-plugin-td5042018.html sounds like you need to find another solution.
    – Mapperz
    Commented Oct 9, 2013 at 15:08
  • 1
    You could store GeoJSON directly in MongoDB and then deliver them over the web through a lightweight API like Bottle (for Python) or Express (for Node.js). If you are unable to deploy a web server like one of these, you could try CouchDB instead, store GeoJSON documents, and access them using CouchDB's native REST API. By comparison, MongoDB has at least some spatial filtering awareness.
    – Arthur
    Commented Oct 9, 2013 at 17:03
  • Thanks Arthur. If I sum up, I could do an architecture like that : MongoDB > Node.js > OpenLayers ? Or OpenLayers would be within Node.js ? Sorry I'm a bit lost into all I can read on the internet :'( Commented Oct 10, 2013 at 14:30

1 Answer 1

3

Even if the question was asked a bit ago here is one solution:

Have a look at the status page of your Geoserver-GUI and see which Geotools version your geoserver uses:

enter image description here

Then download the gt-mongodb-jar of the version xx from

http://download.osgeo.org/webdav/geotools/org/geotools/gt-mongodb

--> in my case version 11

http://download.osgeo.org/webdav/geotools/org/geotools/gt-mongodb/11.0/gt-mongodb-11.0.jar

Put this file in your Geoserver-lib-folder, for example /var/lib/tomcat6/webapps/geoserver/WEB-INF/lib

Do the same with the MongoDB-Java-Driver which you get here: http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

( I took the version 2.12 as it was released roughly at the same time the version 11.0 of the gt-mongodb-file was released. I haven't tested if newer versions would work too. )

Restart Tomcat and you should see a MongoDB-Store in your Geoserver-Installation: enter image description here

1
  • Hey, it's never too late to answer a question in SO :). Fortunately I was able to make this work a year ago (with some modifications needed in the JAR though). Commented Feb 11, 2015 at 9:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.