Я расширил код в этом примере:
http://bl.ocks.org/mbostock/5914438
Но я не могу понять, как разместить точки на этой карте таким образом, чтобы их можно было интегрировать в увеличение. Пути работают нормально, но похоже, что модифицированную проекцию нельзя использовать для проецирования координат точек, а в функции масштабирования добавление scale() к transform() при применении к элементу, содержащему точки, кажется, масштабируется точки настолько велики, что заполняют весь экран. Вот мои дополнительные баллы:
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?