Zürich Hackathon 2014/Geo Namespace

Proposal
Maps are an important part of conveying information in a wiki. They can show you important battle sites during World War 2, they can show you where accommodation is on a Wikivoyage article, they can show you things near to your current location.

Currently we resort to using images to describe data on maps. We take SVG files and carefully position markers on top of cities. Wouldn't it be great if these could be automatically generated from the geocoordinates on the article?

We can convey information such as earthquake epicenters but to edit them we need to pick up image editing software to do so. Wouldn't images like this be great if they were described over the top of a map?

Problem
Wikimedia currently doesn't have its own tileserver and Openstreetmap cannot handle the size of our traffic.

Use cases

 * Embed dynamic maps with in Wikipedia articles without need for templates.
 * Capture data inside maps in structured data e.g. GeoJSON that can be used by 3rd parties e.g. OpenStreetMaps
 * Create new interesting editing opportunities for wiki projects.
 * Add a map view to the Special:Nearby experience.

During Zurich
The proposal is to create a map namespace that would be available via BetaFeatures and the mobile beta site. By creating a product we can put a use case and thus justification for Wikimedia providing a tile server.

The goal of this hack would be pretty ambitious but would provide a raw proof of concept.

Visiting Map:Of World War II Battle sites would bring the page w:List of World War II battles to life showing a map.

As a first pass, clicking edit would allow you to edit a structured data format e.g. GeoJSON to annotate the map. (Future work would allow you to do some from the view interface).

Stretch goal

 * Create a map.php that generates maps with longitude, latitude coordinates which could theoretically replace the need for the GeoHack script.
 * Explore passing API responses to a map.php that allows generation of maps from other content. e.g. Special:Nearby

Output
During the event extension WikiMaps was created that allows basic creation of maps using raw GeoJson or using a basic map editing UI (built using leaflet.draw. The resulting WikiMaps extension is available currently on Github.

Next steps

 * Presentation to projects
 * Review / cleanup code
 * Tweaking for project use cases
 * Adoption