0

假设我有一个像这样的标准平铺地图:http: //bl.ocks.org/mbostock/4132797

如何获取可见地图的边界框坐标?

换句话说,我怎么能准确地说出在任何给定时间显示的地图的范围。我将其理解为边界框,但也理解为范围。

谢谢你。

4

1 回答 1

0

我能够找到类似但具体问题的答案,但如果有人正在寻找一般情况,我会留下这个。

从以利亚米克斯的回答

要在屏幕上找到地图可视区域的边界框,只需使用该projection.invert()功能并将其输入 SVG 的左上角和右下角即可。如果你有一个 500x500 的 SVG,那么它看起来像这样:

projection.invert([0,0]) projection.invert([500,500])这是屏幕的边界框,以经纬度(或您使用的任何坐标系)表示。

之后,您可以获得特征的边界并测试它们是否完全包含或相交,或者它们的质心是否在这些边界内。我不打算在这里解释如何做到这一点,因为这是一个不同的问题,有许多不同的答案,具体取决于您决定的“在这些范围内”的定义。

因此,将可见区域的width和插入投影生成器。height瞧,你有盒子。

于 2016-01-02T16:28:10.937 回答