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) %>
});
id.map().on('move.embed', parent.$.throttle(250, function() {
- var extent = id.map().extent(),
- zoom = ~~id.map().zoom(),
- center = id.map().center();
+ var zoom = ~~id.map().zoom(),
+ center = id.map().center(),
+ llz = { lon: center[0], lat: center[1], zoom: zoom };
- parent.updatelinks({
- lon: center[0],
- lat: center[1]
- },
- zoom,
- null,
- [[extent[0][1],
- extent[0][0]],
- [extent[1][1],
- extent[1][0]]]);
+ parent.updatelinks(llz, zoom);
- // 0ms timeout to avoid iframe JS context weirdness.
+ // Manually resolve URL 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);
+ var hash = parent.OSM.formatHash(llz);
+ if (hash !== parent.location.hash) {
+ parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash));
+ }
}));
parent.$("body").on("click", "a.set_position", function (e) {
// 0ms timeout to avoid iframe JS context weirdness.
// http://bl.ocks.org/jfirebaugh/5439412
- parent.setTimeout(function() {
+ setTimeout(function() {
id.map().centerZoom(
[data.lon, data.lat],
Math.max(data.zoom || 15, 13));
}, 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());
}