I am building an app that has some GIS requirements that go a little beyond (I think) what I can retrieve from existing online web services resources so I am attempting to build a server of my own to handle these requests.
The app is going to make requests to the GIS server specifying lat, lon and I want the server to return a JSON (or XML) document back containing information such as: Habitat : Urban|SubUrban|Rural|Forest|Old Growth Forest|Desert|Alpine
Desert|Lake|River|Sea|...
City/Town:
State/Province : Initially just for the US.
Country:
Alias/Also Known As: i.e. "The Big Apple" : "New York City"
I also want the server to respond to such queries as:
"Can the Atlantic Ocean be seen from present location?"
"Can Mount Adams, Washington, USA be seen from present location?"
these will be formatted and POSTed in a well defined JSON document
I would also like the solution's stack to be cloud friendly, so I can utilize Heroku or Joyent or Amazon's cloud services and get any mapping datasets from publicly available sources. I do have the need to add specific location data points to these maps as well and have been able to prototype this out using a mongo db running a simple node.js server script (more out of curiosity than utility, python may be my server code in the end) this serving location information to an iOS client.
So far, I've just been able to insert & index documents with longitude & latitude and query with a given rectangle. I'm interested in performing the more complex tasks listed above. I am not beholden to mongodb or any other technology is something else makes more sense or is more compatible.