<p>This isn't quite ready to go (waiting on an upstream <a href="https://github.com/Leaflet/Leaflet/pull/1846">Leaflet bug</a>), but I wanted to share and possibly get deployed for testing.</p>
<p><a href="https://f.cloud.github.com/assets/98601/765441/ff7a939a-e82b-11e2-8821-8874aa6c99ba.png" target="_blank"><img src="https://f.cloud.github.com/assets/98601/765441/ff7a939a-e82b-11e2-8821-8874aa6c99ba.png" alt="image" style="max-width:100%;"></a></p>
<p>Notable features:</p>
<ul>
<li>New layer chooser UI</li>
<li>New geolocation control</li>
<li>New share control (with room for "Include marker" checkbox and reorganization/consolidation with some of the "Export" features)</li>
<li>Consistent style with map UI on other pages (just the zoom buttons)</li>
</ul><p>Based on <a href="https://github.com/samanpwbb/osm-redesign/blob/gh-pages/renders/layer-switcher.png">work</a> by <a href="https://github.com/samanpwbb" class="user-mention">@samanpwbb</a>.</p>
<hr>
<h4>You can merge this Pull Request by running</h4>
<pre> git pull https://github.com/osmlab/openstreetmap-website map-ui</pre>
<p>Or view, comment on, or merge it at:</p>
<p> <a href='https://github.com/openstreetmap/openstreetmap-website/pull/328'>https://github.com/openstreetmap/openstreetmap-website/pull/328</a></p>
<h4>Commit Summary</h4>
<ul>
<li>Remove pan and zoom controls</li>
<li>Basic framework for map UI</li>
<li>Remove unused styles</li>
<li>Add back basic zoom control</li>
<li>Add leaflet-locate control, invisible currently.</li>
<li>Remove permalink/add note links</li>
<li>Add locate widget to map</li>
<li>adding icons to sprite.</li>
<li>Start layers pane</li>
<li>Add share button to map</li>
<li>generate short link kind of</li>
<li>Prevent click propagation on ui panes</li>
<li>Remove unnecessary abstraction around rectangles</li>
<li>Start refactoring notes layer</li>
<li>Clean up some of the map JS, reduce scope of globals</li>
<li>Actually toggle note layer on click.</li>
<li>Refactor mapLayers to create layers up front</li>
<li>Add attrib</li>
<li>Restore attribution on main map</li>
<li>Start to refactor updatelinks</li>
<li>More refactoring of map js</li>
<li>Rename to L.OSM.Layers and continue implementation</li>
<li>Even more map ui js refactor</li>
<li>Use querystring, stop manually building urls</li>
<li>Refactor forever</li>
<li>Refactoring 4 life</li>
<li>starting to cleanup+style map controls.</li>
<li>Customize and style map zoom controls</li>
<li>Work on layers UI</li>
<li>Refactor layer persistence</li>
<li>Scope map variable.</li>
<li>Refactor out 'globals' from more functions</li>
<li>Layers work</li>
<li>Complete de-globalization of map</li>
<li>Layers work</li>
<li>Keep zoom buttons together</li>
<li>Arrange and group map buttons</li>
<li>Consistent JavaScript style</li>
<li>Port map key to new UI</li>
<li>Fix attribution width</li>
<li>Fix locate button style</li>
<li>Fix export</li>
<li>Only one pane visible at a time</li>
<li>Fix minimap event bindings</li>
<li>Implement long URL option, toggling, and labeling for share</li>
<li>Reuse styles for map-ui panel</li>
<li>Add layers code to share link</li>
<li>Focus share link by default</li>
<li>Add clearer close action, refactor base layer code</li>
<li>Add sprite and geolocate alternate color</li>
<li>Fix add note</li>
<li>Use custom zoom control everywhere</li>
<li>Include current non-OSM.org hostname in share URL</li>
<li>Move base layer UI above overlay layer UI</li>
<li>Fix export tab bugs</li>
<li>Use a radio button for base layers</li>
<li>Fix zoom out button style on non-main page maps</li>
</ul>
<h4>File Changes</h4>
<ul>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-0">Vendorfile</a>
(12)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-1">app/assets/images/sprite.png</a>
(0)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-2">app/assets/images/sprite.svg</a>
(224)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-3">app/assets/javascripts/application.js</a>
(264)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-4">app/assets/javascripts/browse.js</a>
(70)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-5">app/assets/javascripts/changeset.js</a>
(14)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-6">app/assets/javascripts/diary_entry.js</a>
(15)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-7">app/assets/javascripts/embed.js.erb</a>
(2)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-8">app/assets/javascripts/index.js</a>
(242)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-9">app/assets/javascripts/index/browse.js</a>
(36)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-10">app/assets/javascripts/index/export.js</a>
(10)
</li>
<li>
<strong>D</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-11">app/assets/javascripts/index/key.js</a>
(34)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-12">app/assets/javascripts/index/notes.js.erb</a>
(150)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-13">app/assets/javascripts/leaflet.extend.js.erb</a>
(31)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-14">app/assets/javascripts/leaflet.key.js</a>
(73)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-15">app/assets/javascripts/leaflet.layers.js</a>
(165)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-16">app/assets/javascripts/leaflet.note.js</a>
(19)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-17">app/assets/javascripts/leaflet.share.js</a>
(85)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-18">app/assets/javascripts/leaflet.sidebar.js</a>
(35)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-19">app/assets/javascripts/leaflet.zoom.js</a>
(72)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-20">app/assets/javascripts/map.js.erb</a>
(176)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-21">app/assets/javascripts/querystring.js</a>
(71)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-22">app/assets/javascripts/templates/notes/new.jst.ejs</a>
(2)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-23">app/assets/javascripts/user.js</a>
(13)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-24">app/assets/stylesheets/common.css.scss</a>
(145)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-25">app/assets/stylesheets/large.css</a>
(6)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-26">app/assets/stylesheets/leaflet-all.css.scss</a>
(17)
</li>
<li>
<strong>D</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-27">app/assets/stylesheets/leaflet.pan.css.scss</a>
(41)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-28">app/assets/stylesheets/leaflet.zoom.css.scss</a>
(56)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-29">app/views/layouts/site.html.erb</a>
(1)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-30">app/views/site/_potlatch2.html.erb</a>
(4)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-31">app/views/site/_search.html.erb</a>
(2)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-32">app/views/site/id.html.erb</a>
(15)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-33">app/views/site/index.html.erb</a>
(19)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-34">config/locales/en.yml</a>
(21)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-35">vendor/assets/leaflet/leaflet.locate.js</a>
(194)
</li>
<li>
<strong>D</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-36">vendor/assets/leaflet/leaflet.pan.js</a>
(52)
</li>
<li>
<strong>D</strong>
<a href="https://github.com/openstreetmap/openstreetmap-website/pull/328/files#diff-37">vendor/assets/leaflet/leaflet.zoom.js</a>
(213)
</li>
</ul>
<h4>Patch Links:</h4>
<ul>
<li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/328.patch'>https://github.com/openstreetmap/openstreetmap-website/pull/328.patch</a></li>
<li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/328.diff'>https://github.com/openstreetmap/openstreetmap-website/pull/328.diff</a></li>
</ul>