====== Mapcraft Web ====== Since //Mapcraft// was begun ~10 years ago (it went through several iterations before the version now on Sourceforge was started) things have changed a bit. The most important change is that I now have access to my own web servers, so the requirement of generating static images is no longer there. This then is a holding page for ideas on how to move //Mapcraft// into a more dynamic, web based, environment. Navigation similar to //GoogleMaps// would be good, with support for much larger maps stored in a database. See also: [[/mapcraftweb/rest]], [[mapcraftweb/ajax]] ===== Implementation ===== This supersedes the //Initial Ideas// section below. We have hex based tiles, with an assumed resolution of 1 tile = 5km. The map is divided into //sectors// - each 32x40 tiles in size. Dynamic resolution is based on the sector/sub-sector etc. A sector is sized so that it fits nicely onto a single sheet of A4 paper. The back end also supports a caching mechanism to we read/write whole sectors at a time for hopefully better performance. ===== Initial Ideas ===== * Map data stored in the database. Possible use Hibernate to get away from my 10 year old set of database libraries. * Maps can be displayed online, and can be scrolled/zoomed/searched dynamically. * A single world will have one very big map, with dynamic resolution. * Should editing use a thick client, or web front end? * Still tile based, or possibly just a big pixel image? ==== Sectors ==== Maps will be organised into sectors if 32x40 hexes, in the same style as //Traveller// star maps. Each sector consists of 16 (4x4) sub-sectors, each of 8x10 hexes. This latter fits nicely onto an A4 sheet of paper, hence the choice. Each hex represents an area 5km across. An entire sector can be represented by a single hex (0101). If no other hexes are defined in the database, then the entire sector is assumed to be the same as this hex. A sub-sector can be represented with a single hex in the same way. There is the possibility of falling back to sub-sub sectors (4x5 hexes). This saves space in the database in areas with little detail. ===== Current Status ===== Currently SVN has code which can display a basic map - things and paths aren't yet supported. There is a REST interface for this, which works nicely for getting tiled map images. * REST interface to display maps. * Display Things (towns, cities etc) * Display map by named area. There is also a utility for importing maps from the old XML files, which is being used for testing. How best to do actual editing has yet to be decided. Support for the REST interface has been added into the Alfresco Yagsbook implementation, so that a Yagsbook encyclopedia can now reference these maps and embed them. Maps can currently be selected according to area, and the area is automatically scaled to a sensible size.