Javascript d3投影变换中的数据位置
数据位置如何包含在d3投影变换中 我做了一个基于 显然,数据点不遵循投影变换。这是我添加的相关javascript:Javascript d3投影变换中的数据位置,javascript,d3.js,projection,Javascript,D3.js,Projection,数据位置如何包含在d3投影变换中 我做了一个基于 显然,数据点不遵循投影变换。这是我添加的相关javascript: //========================================== var button = d3.select("#button") .on("click", function(){ drawDot(); }); function drawDot(){ var coordinates = projection([d
//==========================================
var button = d3.select("#button")
.on("click", function(){
drawDot();
});
function drawDot(){
var coordinates = projection([d3.select("#lon").property("value"),
d3.select("#lat").property("value")]);
d3.select('svg')
.append('svg:circle')
.attr('cx', coordinates[0])
.attr('cy', coordinates[1])
.attr('r', 5);
}
//==========================================
首先,你的JS提琴坏了 查看bl.ocks演示,它在更新时选择路径对象并对其进行转换 以下是一个工作示例: 因此,圆需要是一个具有“d”属性集的路径元素。要做到这一点,我们需要将基准设置为我们想要的圆对象,在这种情况下,它使用“geo”类型来工作(shor用于地理) 因此,我们将地球圆的原点设置为中心的长/宽,“角度”是我们的半径
然后,我们使用d3.geo.path()将属性“d”设置为路径,然后通过在选择中选择当前选定的选项并检索关联的投影,将其“投影”到形状上 首先,你的JS小提琴坏了 查看bl.ocks演示,它在更新时选择路径对象并对其进行转换 以下是一个工作示例: 因此,圆需要是一个具有“d”属性集的路径元素。要做到这一点,我们需要将基准设置为我们想要的圆对象,在这种情况下,它使用“geo”类型来工作(shor用于地理) 因此,我们将地球圆的原点设置为中心的长/宽,“角度”是我们的半径
然后,我们使用d3.geo.path()将属性“d”设置为路径,然后通过在选择中选择当前选定的选项并检索关联的投影,将其“投影”到形状上 谢谢。我在我更新的JS小提琴中尝试了你的第一个建议,但点仍然没有移动。现在它更清晰了一点,所以它必须是圆上的路径元素,因为它转换了“d”属性,我不能让它静止不动,但我会继续尝试最终一个小图像应该在点而不是圆上居中,我不知道这会不会有什么不同。我无法帮你制作图片,但我已经更正了我的答案,现在应该可以了。谢谢。我在我更新的JS小提琴中尝试了你的第一个建议,但点仍然没有移动。现在它更清晰了一点,所以它必须是圆上的路径元素,因为它转换了“d”属性,我不能让它静止不动,但我会继续尝试最终一个小图像应该在点而不是圆上居中,我不知道这是否有什么不同。我不能帮你制作一张图片,但我已经更正了我的答案,现在应该可以了
function drawDot(){
var coordinates = projection([d3.select("#lon").property("value"),
d3.select("#lat").property("value")]);
d3.select('svg')
.append('path')
.datum(d3.geo.circle().origin(coordinates).angle(2))
.attr('d', d3.geo.path().projection(options[d3.select("#projection-menu")[0][0].selectedIndex].projection));}