mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-23 00:29:50 +02:00
Merge remote-tracking branch 'noenandre/vegbilder' into develop
This commit is contained in:
@@ -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'));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user