【发布时间】:2016-04-06 16:42:48
【问题描述】:
假设我有一个像这样的标准平铺地图:http://bl.ocks.org/mbostock/4132797
如何获取可见地图的边界框坐标?
换句话说,我怎么能准确地说出地图在任何给定时间显示的范围。我将其理解为边界框,但也理解为范围。
谢谢。
【问题讨论】:
标签: d3.js svg coordinates bounding-box extent
假设我有一个像这样的标准平铺地图:http://bl.ocks.org/mbostock/4132797
如何获取可见地图的边界框坐标?
换句话说,我怎么能准确地说出地图在任何给定时间显示的范围。我将其理解为边界框,但也理解为范围。
谢谢。
【问题讨论】:
标签: d3.js svg coordinates bounding-box extent
我能够找到类似但具体问题的答案,但如果有人正在搜索一般案例,我会留下这个答案。
来自 Elijah Meeks 的answer:
要在屏幕上找到地图可视区域的边界框, 只需使用
projection.invert()函数并将其输入到左上角 和 SVG 的右下角。如果你有一个 500x500 的 SVG,那么 看起来像这样:
projection.invert([0,0])projection.invert([500,500])这是一个 屏幕的边界框,以经纬度(或任何坐标 您正在使用的系统)。之后,您可以获取功能的边界并进行测试以查看是否 它们是完全包含的或相交的,或者它们的质心在 那些界限。我不打算在这里解释如何做到这一点,因为 这是一个不同的问题,有许多不同的答案,具体取决于 您决定“在这些范围内”的哪个定义。
因此,将可见区域的width 和height 插入投影生成器。瞧,你有盒子。
【讨论】: