我这样做,它很可爱:
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
小房子图标在正确的位置,但它不是圆圈的中心点,我做错了什么?
答案 0 :(得分:1)
纬度和经度是非常精确的浮点数。 当您使用这些数字进行计算时,可能会因为调用round,floor,ceil或通过简单地将其发送到服务器并检索它而发生错误。
许多事情会导致精确度从例如点后面的8位数到点后面的6位数,这将导致几十米甚至几百米的差异,具体取决于精度损失。
我建议您在此处使用之前检查代码中使用circleLatLng
的所有位置。因为游戏中可能存在舍入错误。
确保circleLatLng
不包含舍入错误,这可能会使圈子中心偏离其原始位置。最好的是在代码的开头制作一份副本,以便在代码的这一部分中明确使用,并准备好不同的副本用于仲裁计算。