Skip to content

Commit ffcdea9

Browse files
authored
Merge pull request #2513 from plotly/scattermapbox-select-null
fixes #2512 - skip over BADNUM lonlat in scattermapbox select
2 parents 3691c5c + 6034417 commit ffcdea9

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

src/traces/scattermapbox/select.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
var Lib = require('../../lib');
1212
var subtypes = require('../scatter/subtypes');
13+
var BADNUM = require('../../constants/numerical').BADNUM;
1314

1415
module.exports = function selectPoints(searchInfo, polygon) {
1516
var cd = searchInfo.cd;
@@ -29,18 +30,21 @@ module.exports = function selectPoints(searchInfo, polygon) {
2930
for(i = 0; i < cd.length; i++) {
3031
var di = cd[i];
3132
var lonlat = di.lonlat;
32-
var lonlat2 = [Lib.wrap180(lonlat[0]), lonlat[1]];
33-
var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];
34-
35-
if(polygon.contains(xy)) {
36-
selection.push({
37-
pointNumber: i,
38-
lon: lonlat[0],
39-
lat: lonlat[1]
40-
});
41-
di.selected = 1;
42-
} else {
43-
di.selected = 0;
33+
34+
if(lonlat[0] !== BADNUM) {
35+
var lonlat2 = [Lib.wrap180(lonlat[0]), lonlat[1]];
36+
var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];
37+
38+
if(polygon.contains(xy)) {
39+
selection.push({
40+
pointNumber: i,
41+
lon: lonlat[0],
42+
lat: lonlat[1]
43+
});
44+
di.selected = 1;
45+
} else {
46+
di.selected = 0;
47+
}
4448
}
4549
}
4650
}

test/jasmine/tests/select_test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,6 +777,10 @@ describe('@flaky Test select box and lasso per trace:', function() {
777777
var assertSelectedPoints = makeAssertSelectedPoints();
778778

779779
var fig = Lib.extendDeep({}, require('@mocks/mapbox_bubbles-text'));
780+
781+
fig.data[0].lon.push(null);
782+
fig.data[0].lat.push(null);
783+
780784
fig.layout.dragmode = 'select';
781785
fig.config = {
782786
mapboxAccessToken: require('@build/credentials.json').MAPBOX_ACCESS_TOKEN

0 commit comments

Comments
 (0)