fix: remove detections from image when features are turned off

This commit is contained in:
Nikola Plesa
2020-08-06 16:33:40 +02:00
parent f002df5493
commit 6cda7fc77f
2 changed files with 24 additions and 14 deletions

View File

@@ -44,7 +44,7 @@ var dispatch = d3_dispatch('change', 'loadedImages', 'loadedSigns', 'loadedMapFe
var _mlyFallback = false;
var _mlyCache;
var _mlyClicks;
var _mlySelectedImage;
var _mlyActiveImage;
var _mlySelectedImageKey;
var _mlyViewer;
var _mlyHighlightedDetection;
@@ -322,7 +322,7 @@ export default {
};
_mlySelectedImageKey = null;
_mlySelectedImage = null;
_mlyActiveImage = null;
_mlyClicks = [];
},
@@ -457,13 +457,26 @@ export default {
},
resetTags: function() {
if (_mlyViewer && !_mlyFallback) {
_mlyViewer.getComponent('tag').removeAll(); // remove previous detections
}
},
showFeatureDetections: function(value) {
_mlyShowFeatureDetections = value;
if (!_mlyShowFeatureDetections && !_mlyShowSignDetections) {
this.resetTags();
}
},
showSignDetections: function(value) {
_mlyShowSignDetections = value;
if (!_mlyShowFeatureDetections && !_mlyShowSignDetections) {
this.resetTags();
}
},
@@ -490,8 +503,8 @@ export default {
hideViewer: function(context) {
_mlyActiveImage = null;
_mlySelectedImageKey = null;
_mlySelectedImage = null;
if (!_mlyFallback && _mlyViewer) {
_mlyViewer.getComponent('sequence').stop();
@@ -596,14 +609,11 @@ export default {
// Clicks are added to the array in `selectedImage` and removed here.
//
function nodeChanged(node) {
if (!_mlyFallback) {
_mlyViewer.getComponent('tag').removeAll(); // remove previous detections
}
that.resetTags();
var clicks = _mlyClicks;
var index = clicks.indexOf(node.key);
var selectedKey = _mlySelectedImageKey;
that.setSelectedImage(node);
that.setActiveImage(node);
if (index > -1) { // `nodechanged` initiated from clicking on a marker..
clicks.splice(index, 1); // remove the click
@@ -659,8 +669,8 @@ export default {
},
getSelectedImage: function() {
return _mlySelectedImage;
getActiveImage: function() {
return _mlyActiveImage;
},
@@ -674,16 +684,16 @@ export default {
},
setSelectedImage: function(node) {
setActiveImage: function(node) {
if (node) {
_mlySelectedImage = {
_mlyActiveImage = {
ca: node.originalCA,
key: node.key,
loc: [node.originalLatLon.lon, node.originalLatLon.lat],
pano: node.pano
};
} else {
_mlySelectedImage = null;
_mlyActiveImage = null;
}
},

View File

@@ -69,7 +69,7 @@ export function svgMapillaryPosition(projection, context) {
var showViewfields = (z >= minViewfieldZoom);
var service = getService();
var node = service && service.getSelectedImage();
var node = service && service.getActiveImage();
var groups = layer.selectAll('.markers').selectAll('.viewfield-group')
.data(node ? [node] : [], function(d) { return d.key; });