Merge remote-tracking branch 'noenandre/vegbilder' into develop

This commit is contained in:
Martin Raifer
2023-08-07 10:31:07 +02:00
26 changed files with 1741 additions and 18 deletions
+1
View File
@@ -25,6 +25,7 @@ export function uiPhotoviewer(context) {
if (services.mapillary) { services.mapillary.hideViewer(context); }
if (services.kartaview) { services.kartaview.hideViewer(context); }
if (services.mapilio) { services.mapilio.hideViewer(context); }
if (services.vegbilder) { services.vegbilder.hideViewer(context); }
})
.append('div')
.call(svgIcon('#iD-icon-close'));
+28 -2
View File
@@ -1,3 +1,4 @@
import _debounce from 'lodash-es/debounce';
import {
select as d3_select
} from 'd3-selection';
@@ -33,7 +34,14 @@ export function uiSectionPhotoOverlays(context) {
function drawPhotoItems(selection) {
var photoKeys = context.photos().overlayLayerIDs();
var photoLayers = layers.all().filter(function(obj) { return photoKeys.indexOf(obj.id) !== -1; });
var data = photoLayers.filter(function(obj) { return obj.layer.supported(); });
var data = photoLayers.filter(function(obj) {
if (!obj.layer.supported()) return false;
if (layerEnabled(obj)) return true;
if (typeof obj.layer.validHere === 'function') {
return obj.layer.validHere(context.map().extent(), context.map().zoom());
}
return true;
});
function layerSupported(d) {
return d.layer && d.layer.supported();
@@ -41,6 +49,9 @@ export function uiSectionPhotoOverlays(context) {
function layerEnabled(d) {
return layerSupported(d) && d.layer.enabled();
}
function layerRendered(d) {
return d.layer.rendered?.(context.map().zoom()) ?? true;
}
var ul = selection
.selectAll('.layer-list-photos')
@@ -77,7 +88,13 @@ export function uiSectionPhotoOverlays(context) {
else titleID = d.id.replace(/-/g, '_') + '.tooltip';
d3_select(this)
.call(uiTooltip()
.title(() => t.append(titleID))
.title(() => {
if (!layerRendered(d)) {
return t.append('street_side.minzoom_tooltip');
} else {
return t.append(titleID);
}
})
.placement('top')
);
});
@@ -100,6 +117,7 @@ export function uiSectionPhotoOverlays(context) {
.merge(liEnter)
.classed('active', layerEnabled)
.selectAll('input')
.property('disabled', d => !layerRendered(d))
.property('checked', layerEnabled);
}
@@ -320,5 +338,13 @@ export function uiSectionPhotoOverlays(context) {
context.layers().on('change.uiSectionPhotoOverlays', section.reRender);
context.photos().on('change.uiSectionPhotoOverlays', section.reRender);
context.map()
.on('move.background_list',
_debounce(function() {
// layers in-view may have changed due to map move
window.requestIdleCallback(section.reRender);
}, 1000)
);
return section;
}