From 4d8d27f3c4a41124861cb534ef4a6c36b2322abe Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 11 Dec 2019 17:53:03 -0500 Subject: [PATCH] Rely more on mapillary selected photo key than photoviewer datum Remove mapillary map feature selection outline when closing photoviewer --- modules/services/mapillary.js | 17 +++++++---------- modules/svg/mapillary_images.js | 7 +++---- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/modules/services/mapillary.js b/modules/services/mapillary.js index 5e4fee806..b3d7428e2 100644 --- a/modules/services/mapillary.js +++ b/modules/services/mapillary.js @@ -455,7 +455,7 @@ export default { .selectAll('.photo-wrapper') .classed('hide', true); - d3_selectAll('.viewfield-group, .sequence, .icon-sign') + d3_selectAll('.viewfield-group, .sequence, .icon-detected') .classed('currentView', false); return this.setStyles(null, true); @@ -573,7 +573,7 @@ export default { this.setStyles(null, true); // if signs signs are shown, highlight the ones that appear in this image - d3_selectAll('.layer-mapillary-signs .icon-sign') + d3_selectAll('.layer-mapillary-signs .icon-detected') .classed('currentView', function(d) { return d.detections.some(function(detection) { return detection.image_key === imageKey; @@ -593,9 +593,8 @@ export default { }, - getSequenceKeyForImage: function(d) { - var imageKey = d && d.key; - return imageKey && _mlyCache.sequences.forImageKey[imageKey]; + getSequenceKeyForImageKey: function(imageKey) { + return _mlyCache.sequences.forImageKey[imageKey]; }, @@ -615,14 +614,12 @@ export default { } var hoveredImageKey = hovered && hovered.key; - var hoveredSequenceKey = this.getSequenceKeyForImage(hovered); + var hoveredSequenceKey = hoveredImageKey && this.getSequenceKeyForImageKey(hoveredImageKey); var hoveredLineString = hoveredSequenceKey && _mlyCache.sequences.lineString[hoveredSequenceKey]; var hoveredImageKeys = (hoveredLineString && hoveredLineString.properties.coordinateProperties.image_keys) || []; - var viewer = d3_select('#photoviewer'); - var selected = viewer.empty() ? undefined : viewer.datum(); - var selectedImageKey = selected && selected.key; - var selectedSequenceKey = this.getSequenceKeyForImage(selected); + var selectedImageKey = _mlySelectedImageKey; + var selectedSequenceKey = selectedImageKey && this.getSequenceKeyForImageKey(selectedImageKey); var selectedLineString = selectedSequenceKey && _mlyCache.sequences.lineString[selectedSequenceKey]; var selectedImageKeys = (selectedLineString && selectedLineString.properties.coordinateProperties.image_keys) || []; diff --git a/modules/svg/mapillary_images.js b/modules/svg/mapillary_images.js index a7f3b7932..23ca14262 100644 --- a/modules/svg/mapillary_images.js +++ b/modules/svg/mapillary_images.js @@ -161,14 +161,13 @@ export function svgMapillaryImages(projection, context, dispatch) { } function update() { - var viewer = d3_select('#photoviewer'); - var selected = viewer.empty() ? undefined : viewer.datum(); var z = ~~context.map().zoom(); var showMarkers = (z >= minMarkerZoom); var showViewfields = (z >= minViewfieldZoom); var service = getService(); + var selectedKey = service && service.getSelectedImageKey(); var sequences = (service ? service.sequences(projection) : []); var images = (service && showMarkers ? service.images(projection) : []); @@ -213,8 +212,8 @@ export function svgMapillaryImages(projection, context, dispatch) { var markers = groups .merge(groupsEnter) .sort(function(a, b) { - return (a === selected) ? 1 - : (b === selected) ? -1 + return (a.key === selectedKey) ? 1 + : (b.key === selectedKey) ? -1 : b.loc[1] - a.loc[1]; // sort Y }) .attr('transform', transform)