Google地图几何计算中的返回值不一致

时间:2014-10-02 20:10:21

标签: google-maps google-maps-api-3

我正在使用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.49999999919324322.50000000221681的任何内容。

这种可变性是否可预期?这是开发人员API的一个功能吗?

如果有的话,是否有人就如何在我的代码中对此进行说明提出了建议,因为简单地将0.000000001添加到维度对我来说似乎有点蠢蠢欲动。


P.S。

这是我的问题的简化版本。在实际代码中,我实际上生成了一个Rectangle对象,然后计算角落之间的距离以与length进行比较。然而,主体和错误完全相同。

0 个答案:

没有答案