naksha-react-ui
Version:
Visualize grid heat map or layer map from elastic search or https://github.com/strandls/naksha
48 lines (34 loc) • 1.16 kB
JavaScript
var cb = require('./colorbrewer/colorbrewer.js');
module.exports = function(color_scheme, is_legend_stops_data_driven, no_stops, counts) {
let stops = []
if(counts === undefined || counts.length === 0)
return stops;
stops.push([0, cb[color_scheme][no_stops][0]]);
if(!is_legend_stops_data_driven) {
let max_count = counts[counts.length-1];
for (let i = 1; i < no_stops; i++) {
let stop = Math.round(max_count / no_stops) * i;
stops.push([stop, cb[color_scheme][no_stops][i]]);
}
return stops;
}
let interval = Math.round(counts.length/no_stops);
if(interval === 0) {
for (let i = 1; i < no_stops; i++)
stops.push([counts[i], cb[color_scheme][no_stops][i]]);
return stops;
}
let pre_stop = 1
for (let i = 1; i < no_stops; i++) {
let stop = counts[interval * i];
if(stop <= pre_stop) {
let index = interval*i;
while(index < counts.length && counts[index++] <= pre_stop);
if(index === counts.length) return stops;
stop = counts[index];
}
pre_stop = stop;
stops.push([stop, cb[color_scheme][no_stops][i]]);
}
return stops;
};