我一直在扩展此示例中的代码:
http://bl.ocks.org/mbostock/5914438
但我似乎无法弄清楚如何以可以将它们集成到缩放中的方式在此地图上放置点。路径工作正常,但似乎修改后的投影不能用于投影点的坐标,并且在缩放函数中,当应用于包含点的元素时,对 transform() 的 scale() 似乎可以缩放这些点大到填满整个屏幕。这是我的补充观点:
var sitesG = svg.append("g").attr("id","sitesG");
var osites = sitesG.selectAll(".sites")
.data(sites)
.enter()
.append("g")
.attr("transform", function(d) {return "translate(" + projection([d.x,d.y]) + ")scale(" + projection.scale() + ")"})
osites.append("circle").attr("r", 10)
这是 zoomed() 中的函数:
d3.select("#sitesG")
.attr("transform", "translate(" + zoom.translate() + ")scale(" + zoom.scale() + ")")
我也尝试过使用网站的单个元素,但没有成功。有没有人有一个在geo.tile上放点的例子?