World Mapping

For the current version of this project:
 * For documentation, see http://rumfish.net/wiki/Maps
 * For the results, see http://rumfish.net/wiki/Ithos
 * For the editor, see http://maps.rumfish.net (only tested in firefox. IE will not run it)

Overview
Description::A web based system to create custom map tile sets.  The goal would be to create a rich interface that enables people to create, edit, and collaborate on web based maps. Prototype:

not yet ready for general use

The prototype works best in FF2, but mostly works in FF3 (some of the UI framework elements do not function correctly, I have not yet updated to a patched version).

To use it, grab the Overlay (dragable) from the bottom right of the interface and move it around/manipulate its dimensions. Some of the options are very useful, especially Sticky to map and Resize on zoom. The editor is tied to my live site and currently does not have any security (or authentication for that matter), so please do not save changes to the map. All changes mad are logged and reversible, but restoring tiles is currently manual. Technologies used:

JavaScript: google maps api, jQuery, jQuery UI framework, php, mysql, imagemagik End result: http://rumfish.net/wiki/Ithos

This example combines a custom map (or a friends role-playing world) with geocoded wiki articles to overlay additional information on the map. Vision: (see to do list)

I would like to integrate this functionality into mediawiki as an extension. I would like to see a Map: namespace added that would allow maps to be edited and added to articles. I would like the history to be integrated in, and for the system to take advantage of the authentication model of mediawiki. I would also like the ability to create embeddable maps to can be used off of the host wiki.

Map editor process
1. Calculate position (done) uses javascript & GMap API 2. Determine effected cells (done) again, uses javascript 3. Determine padded size (done) Use the size of the image compared to the effected cells total size 4. Backup effected cells (done) 1. Add update record to database. (done) 2. Extend UI (and map api) to access edited tiles 1. add tile.php to select requested tiles >   3. Allow system to revert changes 5. Resize new image 1. wget new image to a working directory (done) 2. Resize temp image (done) 6. For each effected cell (done) 1. Cut from resized image the needed portion (done) For left images +x (done) For Top images +y (done) For right images +256-x (done) For bottom images +256 - y (done) 2. Combine the needed portion (done) 3. Update the cell (done)

Features

 * Editor UI
 * Sticky to map
 * Auto resize on zoom
 * Lock map
 * Keep tiles from caching on editor (editor)
 * See Fast tiles checkbox

To do list

 * Editor UI enhancements (editor)
 * See disabled controls on editor
 * Add aspect ratio of overlay image in toolbar area
 * Minor movement - single pixel moments via directional pad (editor)
 * Revisions / Undo (server, editor, database)
 * make server use timestamp.ext instead of temp.jpg (server)
 * make changes to support other image formats (server)
 * support for multiple maps (editor, server, client, database)
 * create new zoom level (server, editor)
 * for each tile, double, cut, write to server (server, editor)
 * Handle off map / roll over positions (edge cases) (server, editor)
 * Save original, before resize, images on add; store edit variables (server, database)
 * Allow resurrection of editing point (relies on saved images) (editor, server, database)