var id = iD()
.embed(true)
- .assetPath("/assets/iD/") <%# Can't use asset_path('iD/') in production. %>
+ .assetPath("/iD/") <%# Can't use asset_path('iD/') in production. %>
+ .assetMap(<%= assets("iD").to_json.html_safe %>)
.locale("<%= locale %>", "<%= asset_path("iD/locales/#{locale}.json") %>")
.preauth({
<% token = @user.access_token(ID_KEY) %>
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();
},
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]]]);
+
+ // Manually resolve URL to avoid iframe JS context weirdness.
+ // http://bl.ocks.org/jfirebaugh/5439412
+ var hash = parent.OSM.formatHash({ lon: center[0], lat: center[1], zoom: zoom });
+ if (hash !== parent.location.hash) {
+ parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash));
+ }
+ }));
parent.$("body").on("click", "a.set_position", function (e) {
e.preventDefault();
}, 0);
});
- var maximized = false;
- id.on('toggleFullscreen.embed', function() {
- if (maximized) {
- parent.minimiseMap();
- } else {
- parent.maximiseMap();
- }
- maximized = !maximized;
- });
-
d3.select('#id-container')
.call(id.ui());
}