假设我有一个像这样的标准平铺地图:http: //bl.ocks.org/mbostock/4132797
如何获取可见地图的边界框坐标?
换句话说,我怎么能准确地说出在任何给定时间显示的地图的范围。我将其理解为边界框,但也理解为范围。
谢谢你。
假设我有一个像这样的标准平铺地图:http: //bl.ocks.org/mbostock/4132797
如何获取可见地图的边界框坐标?
换句话说,我怎么能准确地说出在任何给定时间显示的地图的范围。我将其理解为边界框,但也理解为范围。
谢谢你。
我能够找到类似但具体问题的答案,但如果有人正在寻找一般情况,我会留下这个。
从以利亚米克斯的回答:
要在屏幕上找到地图可视区域的边界框,只需使用该
projection.invert()
功能并将其输入 SVG 的左上角和右下角即可。如果你有一个 500x500 的 SVG,那么它看起来像这样:
projection.invert([0,0])
projection.invert([500,500])
这是屏幕的边界框,以经纬度(或您使用的任何坐标系)表示。之后,您可以获得特征的边界并测试它们是否完全包含或相交,或者它们的质心是否在这些边界内。我不打算在这里解释如何做到这一点,因为这是一个不同的问题,有许多不同的答案,具体取决于您决定的“在这些范围内”的定义。
因此,将可见区域的width
和插入投影生成器。height
瞧,你有盒子。