我正在使用Google地图开发应用程序。我有一些逻辑,希望google.maps.geometry.spherical
库的输出非常一致。
基本上我想画一个尺寸精确的盒子。
我的示例代码如下所示:
function (LatLng) {
var NW, NE, SW, SE, length, dist;
// LatLng is a coordinate
NW = LatLng
// I have a length variable
length = 25
// Using the single reference point as NorthWest corner of the box,
// I calculate the remaining 3 corners
NE = google.maps.geometry.spherical.computeOffset(LatLng, length, 90);
SW = google.maps.geometry.spherical.computeOffset(LatLng, length, 180);
SE = google.maps.geometry.spherical.computeOffset(SW, length, 90);
// now I check the dimensions
dist = google.maps.geometry.spherical.computeDistanceBetween(NE, NW);
console.log('NW/NE bounds distance', dist);
}
我希望得到一个25(等于length
)的值,实际上我的后续逻辑取决于dist >= length
。但是,当我多次运行时,我会在25左右得到一定程度的可变性。例如,我发现从范围22.499999999193243
到22.50000000221681
的任何内容。
这种可变性是否可预期?这是开发人员API的一个功能吗?
如果有的话,是否有人就如何在我的代码中对此进行说明提出了建议,因为简单地将0.000000001
添加到维度对我来说似乎有点蠢蠢欲动。
P.S。
这是我的问题的简化版本。在实际代码中,我实际上生成了一个Rectangle
对象,然后计算角落之间的距离以与length
进行比较。然而,主体和错误完全相同。