Commit 9a91a494 by Zachary Tong

Fix clipping issues with geopoints on sphere

parent 25938054
......@@ -2,29 +2,40 @@
* Renders geopoints as geo-json poly gon entities
* Allows for them to clip on spheres correctly
*/
function displayGeopoints(scope, dr, path) {
function displayGeopoints(scope, dr) {
var points = [];
var circle = d3.geo.circle();
var degrees = 180 / Math.PI
if (scope.panel.display.geopoints.enabled) {
points = dr.points;
//points = dr.points;
points = _.map(dr.points, function(v) {
return {
type: "Point",
coordinates: [v[0], v[1]]
};
});
}
dr.geopoints = dr.g.selectAll("path.geopoint")
.data(points);
var geopoints = dr.g.selectAll(".geopoint")
.data(points);
geopoints.enter().append("path")
dr.geopoints.enter().append("path")
/*
.datum(function(d) {
return circle.origin([d[0], d[1]]).angle(scope.panel.display.geopoints.pointSize / 6371 * degrees)();
})
.attr("d", path)
.attr("class", "geopoint");
*/
.attr("class", "geopoint")
.attr("d", dr.path);
geopoints.exit().remove();
dr.geopoints.exit().remove();
......
......@@ -339,15 +339,8 @@ angular.module('kibana.map2', [])
}
var path = d3.geo.path()
.projection(dr.projection);
//Special fix for when the user changes from mercator -> orthographic
//The globe won't redraw automatically, we need to force it
if (scope.panel.display.data.type === 'orthographic') {
dr.svg.selectAll("path").attr("d", path);
}
dr.path = d3.geo.path()
.projection(dr.projection).pointRadius(0.2);
console.log(scope.data);
......@@ -364,8 +357,6 @@ angular.module('kibana.map2', [])
return dr.projection(coords);
});
dr.svg.select(".overlay").remove();
dr.svg.append("rect")
......@@ -387,7 +378,7 @@ angular.module('kibana.map2', [])
return 'land';
}
})
.attr("d", path);
.attr("d", dr.path);
countryPath.exit().remove();
......@@ -399,9 +390,20 @@ angular.module('kibana.map2', [])
.on("drag", function() {
if (scope.keylistener.keyActive(17)) {
dr.projection.rotate([d3.event.x / 2, -d3.event.y / 2, dr.projection.rotate()[2]]);
dr.svg.selectAll("path").attr("d", path);
//dr.svg.selectAll("path").attr("d", dr.path);
dr.g.selectAll("path").attr("d", dr.path);
}
}));
}));
}
//Special fix for when the user changes from mercator -> orthographic
//The globe won't redraw automatically, we need to force it
if (scope.panel.display.data.type === 'orthographic') {
//dr.svg.selectAll("path").attr("d", dr.path);
}
......@@ -413,8 +415,8 @@ angular.module('kibana.map2', [])
//@todo fix this
var dimensions = [width, height];
displayBinning(scope, dr, dimensions);
displayGeopoints(scope, dr, path);
displayBullseye(scope, dr, path);
displayGeopoints(scope, dr);
displayBullseye(scope, dr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment