SVG路径上的传单setView

时间:2019-05-08 12:27:21

标签: javascript svg view leaflet

我有一个传单地图和绑定到它的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放置到多边形中心并在其中绑定弹出窗口

0 个答案:

没有答案