漂浮时,一个点周围的半径不是中心

时间:2016-06-16 14:38:07

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

我这样做,它很可爱:

radiusMi

问题出现在radiusMi是浮点数或1英里以下时,它会偏离中心。请参阅下面的图片,了解我的意思(Message.where(to: current_user.id) .order(:created_at) .group_by(&:user_id) .map{|_, x| x.last} 在此设置为0.5):

http://giodev.com/map-thing.png

小房子图标在正确的位置,但它不是圆圈的中心点,我做错了什么?

1 个答案:

答案 0 :(得分:1)

纬度和经度是非常精确的浮点数。 当您使用这些数字进行计算时,可能会因为调用round,floor,ceil或通过简单地将其发送到服务器并检索它而发生错误。

许多事情会导致精确度从例如点后面的8位数到点后面的6位数,这将导致几十米甚至几百米的差异,具体取决于精度损失。

我建议您在此处使用之前检查代码中使用circleLatLng的所有位置。因为游戏中可能存在舍入错误。

确保circleLatLng不包含舍入错误,这可能会使圈子中心偏离其原始位置。最好的是在代码的开头制作一份副本,以便在代码的这一部分中明确使用,并准备好不同的副本用于仲裁计算。