我有纬度/经度值和距离值。我需要计算一个以给定位置为中心的边界框。所以如果距离是200米那么矩形框应该在前面,后面,左边和右边200米。
如何使用JavaScript执行此操作?
答案 0 :(得分:3)
您需要将坐标lat / long转换为您正在使用的地图投影中的x / y值,然后您可以计算边界框。
我不太了解Google Maps API,我也不知道你想要用你的盒子做什么。但也许GBounds,GMercatorProjection和GLatLngBounds可能会有所帮助。如果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,则可以使用Rectangle和Circle。请参阅此博主的简要说明和示例:
http://apitricks.blogspot.com/2010/02/rectangle-and-circle-of-v3.html