我有一个传单地图和绑定到它的geojson的SVG路径。 我希望能够在单击时将视图设置为多边形。并在鼠标悬停时弹出一个窗口。但是,它只是将弹出窗口或视图放在地图之外。其余的工作正常,我只是不知道如何投影所需的点。
我试图通过获取带有边界框的多边形的中心来解决它。我还有一个视图重置功能,女巫总是会更改框
const poly = d3.select(this);
var element = poly.node();
var bbox = element.getBBox();
tempX = bbox.x + bbox.width / 2;
tempY = bbox.y + bbox.height / 2;
map.setView(tempY,tempX)
//view set function
map.on("viewreset", reset);
function reset() {
bounds = path.bounds(collection),
topLeft = bounds[0],
bottomRight = bounds[1];
svg.attr("width", bottomRight[0] - topLeft[0])
.attr("height", bottomRight[1] - topLeft[1])
.style("left", topLeft[0] + "px")
style("top", topLeft[1] + "px");
g.attr("transform", "translate(" + -topLeft[0] + ","
+ -topLeft[1] + ")");
feature.attr("d", path)
}
我希望能够将View放置到多边形中心并在其中绑定弹出窗口