Skip to content

Commit 52c1b89

Browse files
committed
scattergeo: add proper calc step
- which skips and cast lon/lat values - fixes #963 - note that 'locations[i]' -> feature must still be done at the plot (after the topojson is loaded)
1 parent 4448eaa commit 52c1b89

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

src/traces/scattergeo/calc.js

+38-4
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,47 @@
99

1010
'use strict';
1111

12-
var calcColorscale = require('../scatter/colorscale_calc');
12+
var isNumeric = require('fast-isnumeric');
13+
14+
var calcMarkerColorscale = require('../scatter/colorscale_calc');
1315

1416

1517
module.exports = function calc(gd, trace) {
16-
var cd = [{x: false, y: false, trace: trace, t: {}}];
18+
var hasLocationData = Array.isArray(trace.locations),
19+
len = hasLocationData ? trace.locations.length : trace.lon.length;
20+
21+
var calcTrace = [],
22+
cnt = 0;
23+
24+
for(var i = 0; i < len; i++) {
25+
var calcPt = {},
26+
skip;
27+
28+
if(hasLocationData) {
29+
var loc = trace.locations[i];
30+
31+
calcPt.loc = loc;
32+
skip = (typeof loc !== 'string');
33+
}
34+
else {
35+
var lon = trace.lon[i],
36+
lat = trace.lat[i];
37+
38+
calcPt.lonlat = [+lon, +lat];
39+
skip = (!isNumeric(lon) || !isNumeric(lat));
40+
}
41+
42+
if(skip) {
43+
if(cnt > 0) calcTrace[cnt - 1].gapAfter = true;
44+
continue;
45+
}
46+
47+
cnt++;
48+
49+
calcTrace.push(calcPt);
50+
}
1751

18-
calcColorscale(trace);
52+
calcMarkerColorscale(trace);
1953

20-
return cd;
54+
return calcTrace;
2155
};

0 commit comments

Comments
 (0)