4

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

我该如何使用 JavaScript 执行此操作?

4

3 回答 3

3

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

我不太了解 Google Maps API,也不知道你想用你的盒子做什么。但也许GBoundsGMercatorProjectionGLatLngBounds会有所帮助。如果 Google Maps API 不支持您正在使用的地图投影的计算,那么使用Proj4js会很有帮助。也许您想阅读有关地图投影的信息。谷歌地图默认使用墨卡托投影

于 2010-06-29T20:09:26.853 回答
3

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

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

对于点周围的边界框,使用上述 javascript 库的简单修改可能是:

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,
    ];
}

(这使用“从起点给定距离和方位的目标点”计算。)

于 2010-06-29T21:23:55.447 回答
0

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

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

于 2010-06-29T20:28:05.743 回答