Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3将投影应用于D3提示工具提示_Javascript_Svg_D3.js - Fatal编程技术网

Javascript D3将投影应用于D3提示工具提示

Javascript D3将投影应用于D3提示工具提示,javascript,svg,d3.js,Javascript,Svg,D3.js,我有一张美国地图,上面画着城市。我正在尝试使用d3提示为悬停时的城市提供工具提示。我遇到的问题是d3提示没有考虑投影,我不知道如何应用它 我使用的投影: var projection = d3.geo.mercator() .scale(150) .translate([width / 2, height / 1.5]); 我通过以下方式将其应用于我的圆元素: .attr("cx", function(d) { return projection([d.Longitude, d.L

我有一张美国地图,上面画着城市。我正在尝试使用d3提示为悬停时的城市提供工具提示。我遇到的问题是d3提示没有考虑投影,我不知道如何应用它

我使用的投影:

var projection = d3.geo.mercator()
  .scale(150)
  .translate([width / 2, height / 1.5]);
我通过以下方式将其应用于我的圆元素:

.attr("cx", function(d) {
  return projection([d.Longitude, d.Latitude])[0];
})
.attr("cy", function(d) {
  return projection([d.Longitude, d.Latitude])[1];
})

问题是d3 tip似乎没有采用x和y属性,它从发出事件的节点获取它们,并且似乎没有考虑到应用了投影;这对我来说毫无意义。

我通常通过在d3中添加一个带有绝对位置的div并将其隐藏在主体中来进行工具提示

然后在元素上移动鼠标时,我将div移动到鼠标指针的位置并取消隐藏它。然后,一旦mouseout事件发生,我就隐藏div

这允许我控制X和Y以及工具提示的样式和文本

这里有一个很好的例子: