Binning settings, data settings

This commit is contained in:
Zachary Tong
2013-04-05 12:51:27 -04:00
parent b7a5afcbd3
commit 54bc5ddb71
2 changed files with 141 additions and 74 deletions
+36 -27
View File
@@ -6,12 +6,15 @@ angular.module('kibana.map2', [])
query: "*",
map: "world",
colors: ['#C8EEFF', '#0071A4'],
size: 1000,
size: 100,
exclude: [],
spyable: true,
group: "default",
index_limit: 0,
display: {
data: {
samples: 1000
},
geopoints: {
enabled: true,
enabledText: "Enabled",
@@ -19,10 +22,13 @@ angular.module('kibana.map2', [])
pointAlpha: 0.6
},
binning: {
enabled: true,
hexagonSize: 10,
hexagonAlpha: 1.0
}
},
displayTabs: ["Geopoints", "Binning"],
displayTabs: ["Geopoints", "Binning", "Data"],
activeDisplayTab:"Geopoints"
};
@@ -59,7 +65,7 @@ angular.module('kibana.map2', [])
var facet = $scope.ejs.TermsFacet('map')
.field($scope.panel.field)
.size(1000)
.size($scope.panel.display.data.samples)
.exclude($scope.panel.exclude)
.facetFilter(ejs.QueryFilter(
ejs.FilteredQuery(
@@ -218,42 +224,45 @@ angular.module('kibana.map2', [])
.attr("class", "boundary")
.attr("d", path);
//Geocoded points are decoded into lat/lon, then projected onto x/y
var points = _.map(scope.data, function (k, v) {
var decoded = geohash.decode(v);
return projection([decoded.longitude, decoded.latitude]);
});
//hexagonal binning
if (scope.panel.display.binning.enabled) {
var color = d3.scale.linear()
.domain([0, 20])
.range(["white", "steelblue"])
.interpolate(d3.interpolateLab);
var color = d3.scale.linear()
.domain([0, 20])
.range(["white", "steelblue"])
.interpolate(d3.interpolateLab);
var hexbin = d3.hexbin()
.size([width, height])
.radius(10);
var hexbin = d3.hexbin()
.size([width, height])
.radius(scope.panel.display.binning.hexagonSize);
g.selectAll(".hexagon")
.data(hexbin(points))
.enter().append("path")
.attr("d", function (d) {
return hexbin.hexagon();
})
.attr("class", "hexagon")
.attr("transform", function (d) {
return "translate(" + d.x + "," + d.y + ")";
})
.style("fill", function (d) {
return color(d.length);
})
.attr("opacity", 1);
g.selectAll(".hexagon")
.data(hexbin(points))
.enter().append("path")
.attr("d", function (d) {
return hexbin.hexagon();
})
.attr("class", "hexagon")
.attr("transform", function (d) {
return "translate(" + d.x + "," + d.y + ")";
})
.style("fill", function (d) {
return color(d.length);
})
.attr("opacity", scope.panel.display.binning.hexagonAlpha);
}
/* raw geopoints */
//Raw geopoints
if (scope.panel.display.geopoints.enabled) {
g.selectAll("circles.points")
.data(points)
.enter()