X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/720c8d0e357b2867b9c0fec27006caec3fed0b23..c6cde2653b8dbcd3345348b33619b2240f1cc905:/app/views/site/id.html.erb diff --git a/app/views/site/id.html.erb b/app/views/site/id.html.erb index 96262f1e2..ccdad9557 100644 --- a/app/views/site/id.html.erb +++ b/app/views/site/id.html.erb @@ -16,7 +16,7 @@ 'Please upgrade your browser or use Potlatch 2 to edit the map.'; document.getElementById('id-container').className = 'unsupported'; } else { - <% locale = select_locale(ID::LOCALES) %> + <% locale = select_locale(ID::LOCALES).to_s %> var id = iD() .embed(true) @@ -31,21 +31,31 @@ oauth_token_secret: "<%= token.secret %>" }); - id.map().on('move.embed', function() { + id.map().on('move.embed', parent.$.throttle(250, function() { var extent = id.map().extent(), zoom = ~~id.map().zoom(), center = id.map().center(); - parent.updatelinks( - center[0], - center[1], + parent.updatelinks({ + lon: center[0], + lat: center[1] + }, zoom, null, - extent[0][0], - extent[0][1], - extent[1][0], - extent[1][1]); - }); + [[extent[0][1], + extent[0][0]], + [extent[1][1], + extent[1][0]]]); + + // 0ms timeout to avoid iframe JS context weirdness. + // http://bl.ocks.org/jfirebaugh/5439412 + parent.setTimeout(function() { + var hash = parent.OSM.formatHash({ lon: center[0], lat: center[1], zoom: zoom }); + if (hash !== parent.location.hash) { + parent.location.replace(hash); + } + }, 0); + })); parent.$("body").on("click", "a.set_position", function (e) { e.preventDefault(); @@ -53,7 +63,7 @@ // 0ms timeout to avoid iframe JS context weirdness. // http://bl.ocks.org/jfirebaugh/5439412 - setTimeout(function() { + parent.setTimeout(function() { id.map().centerZoom( [data.lon, data.lat], Math.max(data.zoom || 15, 13));