Skip to content

Commit

Permalink
Add min and localMin handling to gmaps plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
pa7 committed Aug 7, 2014
1 parent 965b072 commit 99196fe
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions plugins/gmaps-heatmap.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ HeatmapOverlay.prototype.initialize = function(cfg) {

this.data = [];
this.max = 1;
this.min = 0;

cfg.container = container;
};
Expand Down Expand Up @@ -142,14 +143,15 @@ HeatmapOverlay.prototype.update = function() {
return;
}

var generatedData = { max: this.max };
var generatedData = { max: this.max, min: this.min };
var latLngPoints = [];
// iterate through data
var len = this.data.length;
var layerProjection = this.getProjection();
var layerOffset = layerProjection.fromLatLngToDivPixel(topLeft);
var radiusMultiplier = this.cfg.scaleRadius ? scale : 1;
var localMax = 0;
var localMin = 0;
var valueField = this.cfg.valueField;


Expand All @@ -164,9 +166,8 @@ HeatmapOverlay.prototype.update = function() {
continue;
}
// local max is the maximum within current bounds
if (value > localMax) {
localMax = value;
}
localMax = Math.max(value, localMax);
localMin = Math.min(value, localMin);

var point = this.pixelTransform(layerProjection.fromLatLngToDivPixel(latlng));
var latlngPoint = { x: Math.round(point.x - layerOffset.x), y: Math.round(point.y - layerOffset.y) };
Expand All @@ -184,6 +185,7 @@ HeatmapOverlay.prototype.update = function() {
}
if (this.cfg.useLocalExtrema) {
generatedData.max = localMax;
generatedData.min = localMin;
}

generatedData.data = latLngPoints;
Expand All @@ -210,6 +212,7 @@ HeatmapOverlay.prototype.pixelTransform = function(point) {

HeatmapOverlay.prototype.setData = function(data) {
this.max = data.max;
this.min = data.min;

var latField = this.cfg.latField || 'lat';
var lngField = this.cfg.lngField || 'lng';
Expand Down Expand Up @@ -253,6 +256,7 @@ HeatmapOverlay.prototype.addData = function(pointOrArray) {
dataObj.radius = entry.radius;
}
this.max = Math.max(this.max, dataObj[valueField]);
this.min = Math.min(this.min, dataObj[valueField]);
this.data.push(dataObj);
this.update();
}
Expand Down

0 comments on commit 99196fe

Please sign in to comment.