使用Javascript计算边界框

时间:2010-06-29 19:31:08

标签: javascript math google-maps geolocation proj4js

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

如何使用JavaScript执行此操作?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

以下是一些用于处理纬度和经度的有用的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"计算。)

答案 2 :(得分:0)

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

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