現在、私はズーム機能をクリックした国や郡の境界レベルまで持ってきたD3世界地図に取り組んでいます。D3世界地図の泡のズームを停止する
ケニアの郡を指し示す泡が追加されました。私は追加したズーム機能を拡大しました。しかし、地図のズームに気泡のズームを止めたいと思います。
私の現在の仕事のためのプランナーです。
https://plnkr.co/edit/nZIlJxvU74k8Nmtpduzc?p=preview
、下あなたは全体g
要素をスケーリングしているズームのためのコードであると
function clicked(d) {
var conditionalChange = d;
if(d.properties.hasOwnProperty("Country")){
var country = d.properties.Country;
var obj = data.objects.countries.geometries;
$.each(obj, function(key, value) {
if(countries[key].properties.name == "Kenya")
{
conditionalChange = countries[key].geometry;
}
});
}
d = conditionalChange;
if (active.node() === this) return reset();
active.classed("active", false);
active = d3.select(this).classed("active", true);
var bounds = path.bounds(d),
dx = bounds[1][0] - bounds[0][0],
dy = bounds[1][1] - bounds[0][1],
x = (bounds[0][0] + bounds[1][0])/2,
y = (bounds[0][1] + bounds[1][1])/2,
scale = 1.2/ Math.max(dx/width, dy/height),
translate = [width/2 - scale * x, height/2 - scale * y];
g.transition()
.duration(750)
.style("stroke-width", 1/ scale + "px")
.attr("transform", "translate(" + translate + ")scale(" + scale + ")");
}
function reset() {
active.classed("active", false);
active = d3.select(null);
g.transition()
.duration(750)
.style("stroke-width", "1px")
.attr("transform", "");
}
ブリリアント!私が探していたものとまったく同じです。 –