I am not quite sure where to start with this. I only just started looking into this in the past week, but hopefully someone can help point me in the right direction.

The goal of my project is to be able to take a geohash, decode it to latitude and longitude, check the point against some GIS data, and find out some information about that point such as the terrain(is this a body of water? A lake? An Ocean? Is this a mountainous area? Is this a field?), altitude, or other useful things. Then simply be able to display that information as a starter.

What I have gathered so far is that I need to get some free GIS data (this is for school, so I have no money!). I would like to have world data, and I found some online (<http://www.webgis.com/terraindata.html>) but I don't know where to go from here. I saw some tools such as PostGIS as a database.

I am currently using Java for some other parts of the project, so if possible I would like to stick to Java.

Can someone help me out, or point me in the right direction?