使用 Javascript 计算边界框

Posted

技术标签:

【中文标题】使用 Javascript 计算边界框【英文标题】:Calculating the bounding box using Javascript 【发布时间】:2010-06-29 19:31:07 【问题描述】:

我有一个纬度/经度值和距离值。我需要计算一个以给定位置为中心的边界框。所以如果距离是 200 米,那么矩形框应该是前后左右各 200 米。

如何使用 javascript 来做这件事?

【问题讨论】:

【参考方案1】:

您需要将您的坐标 lat/long 转换为您正在使用的地图投影中的 x/y 值,然后您可以计算您的边界框。

我不太了解 Google Maps API,也不知道你想用你的盒子做什么。但也许GBounds、GMercatorProjection 和GLatLngBounds 会有所帮助。如果 Google Maps API 不支持您正在使用的地图投影的计算,那么使用 Proj4js 会很有帮助。也许你想了解Map projections。 Google 地图默认使用Mercator projection。

【讨论】:

【参考方案2】:

以下是一些用于处理纬度和经度的有用 javascript 函数:

http://www.movable-type.co.uk/scripts/latlong.html

对于一个点周围的边界框,使用the above javascript library 的简单修改可能是:

LatLon.prototype.boundingBox = function (distance)

    return [
        this.destinationPoint(-90, distance)._lon,
        this.destinationPoint(180, distance)._lat,
        this.destinationPoint(90, distance)._lon,
        this.destinationPoint(0, distance)._lat,
    ];

(这使用"Destination point given distance and bearing from start point" 计算。)

【讨论】:

【参考方案3】:

如果您使用的是V3 API,则可以使用Rectangle 和Circle。请参阅此博主的简要说明和示例:

http://apitricks.blogspot.com/2010/02/rectangle-and-circle-of-v3.html

【讨论】:

以上是关于使用 Javascript 计算边界框的主要内容,如果未能解决你的问题,请参考以下文章

如何获取图像的边界框和底部边界框

从旋转的矩形计算边界框坐标

计算边界框重叠的百分比,用于图像检测器评估

从旋转的矩形计算边界框坐标

javascript 得到边界框

计算将地理边界框扩展x英里