in modules/renderer/background.js [135:212]
background.updateImagery = function() {
var b = baseLayer.source();
if (context.inIntro() || !b) return;
var o = _overlayLayers
.filter(function (d) { return !d.source().isLocatorOverlay() && !d.source().isHidden(); })
.map(function (d) { return d.source().id; })
.join(',');
var meters = geoOffsetToMeters(b.offset());
var epsilon = 0.01;
var x = +meters[0].toFixed(2);
var y = +meters[1].toFixed(2);
var q = utilStringQs(window.location.hash.substring(1));
var id = b.id;
if (id === 'custom') {
id = 'custom:' + b.template();
}
if (id) {
q.background = id;
} else {
delete q.background;
}
if (o) {
q.overlays = o;
} else {
delete q.overlays;
}
if (Math.abs(x) > epsilon || Math.abs(y) > epsilon) {
q.offset = x + ',' + y;
} else {
delete q.offset;
}
if (!window.mocha) {
window.location.replace('#' + utilQsString(q, true));
}
var imageryUsed = [];
var photoOverlaysUsed = [];
var current = b.imageryUsed();
if (current && _isValid) {
imageryUsed.push(current);
}
_overlayLayers
.filter(function (d) { return !d.source().isLocatorOverlay() && !d.source().isHidden(); })
.forEach(function (d) { imageryUsed.push(d.source().imageryUsed()); });
var data = context.layers().layer('data');
if (data && data.enabled() && data.hasData()) {
imageryUsed.push(data.getSrc());
}
var photoOverlayLayers = {
streetside: 'Bing Streetside',
mapillary: 'Mapillary Images',
'mapillary-map-features': 'Mapillary Map Features',
'mapillary-signs': 'Mapillary Signs',
openstreetcam: 'OpenStreetCam Images'
};
for (var layerID in photoOverlayLayers) {
var layer = context.layers().layer(layerID);
if (layer && layer.enabled()) {
photoOverlaysUsed.push(layerID);
imageryUsed.push(photoOverlayLayers[layerID]);
}
}
context.history().photoOverlaysUsed(photoOverlaysUsed);
context.history().imageryUsed(imageryUsed);
};