I'm googling around for some weeks but I've some difficulties to figure out where to begin my project and which part of the available Geo stacks are mandatory for my needs.
I have a strong Java background, some interest for Python and totally open to learn some new technologies.
As an hobby and because it is close related to my job, I plan to develop a web MMO strategic wargame heavily based on an interactive maps (basically to display the tactical situation and give orders to units).
Here is what I was thinking about :
- Geoserver to serve maps and layers.
- PostGIS to store geodatas.
- GeoExt to display in a browser
- Apache Click as the Java application server (combat resolution, unit management)
Here is the flow I was thinking of :
- GeoServer serves the map backgrounds and layers constructed from PostGIS data for static objects (Cities, Victory Points, Territories, ...)
- Apache Click generates HTML+GeoExt pages in the client browser.
- Apache Click sends CRUD commands to PostGIS in response of user's action.
- [something] updates regularly PostGIS (movements, combat resolution, unit characteristics management...)
- Apache Click generates dynamically KML files to live update the browser (KML NetworkLink ?) for units display with icons, zones (range, detection...)...
And now, the missing brick in my little wall :
- How can I implement a "sea/land" layer. For example, to invalidate a ship movement passing on land ? GeoServer layer ? Zones defined in PostGIS ?
- Is the following flow reactive enough to update the map after a user action : HTML/GeoExt event -> Apache Click process -> PostGIS update -> GeoServer layer update -> HTML/GeoExt display
The main point is : where are the data if I want to use it for calculation and update ? GeoServer static layer or PostGIS tables ?