世界迷雾吧 关注:1,591贴子:6,154
  • 9回复贴,共1

关于《世界迷雾》的同步和误差

只看楼主收藏回复

这两天看到有朋友提到在不同设备上,《世界迷雾》显示的行走面积存在误差问题。这个问题或者说是bug我也有发现,写出来和大家讨论一下。
首先介绍一下,我有三部设备上分别都装了《世界迷雾》这个APP,分别是有GPS功能的iPhone A和iPhone B,以及没有GPS功能的iPad C。
我具体的使用是每次出门前分别打开iPhone A和iPhone B上面APP的记录按钮,然后分别记录。(之所以开两部设备记录是因为有些信号不好的地方,有时会出现记录的断点。两部同时记录可以尽量确保减少断点情况的出现,两部都没信号,说明那里真的是没信号)回到家后,先将iPhone A进行“同步与备份”到Dropbox账户,同步完成后,再将iPhone B进行“同步与备份”,B同步完成后,重新再将A同步一遍。
这里就涉及到APP的同步机制:每次同步时,APP将手机上的数据与Dropbox上的数据进行对比,将差异部分增加到缺少的那一方(注意,只会增加,不会减少,也就是说这个过程是不可逆的。)例如,发现手机上数据有一段是Dropbox账户里没有的,于是自动把这段数据加进Dropbox。同理,如果发现Dropbox上有一段数据是手机上没有的,也会自动把这段数据加进手机。
所以每次我同步的时候,第一次同步设备A,于是服务器和设备A上的数据都变成了“原服务器数据+设备A数据”,这个时候再同步设备B,于是服务器和设备B上的数据都变成了“原服务器数据+设备A数据+设备B数据”,这个时候的设备A上还是“原服务器数据+设备A数据”,这个时候就需要将设备A再重新同步一次,使之加上设备B数据。这样的话,服务器、设备A、设备B三者的数据就完全同步了。
但是这仅仅是个理论情况,根据我实际测试,发现这三者都会存在一定的误差,不会相等。以我现在的情况为例,设备A上是85.997252平方公里,设备B上是86.115544平方公里,而设备C(实际上就是Dropbox上)是85.910374平方公里。三者皆不相同,最大相差0.2平方公里。经我观察发现,两部有GPS功能的设备A和设备B,它们各自每天所新增加的面积,这部分并不是能够全部被同步到服务器上。例如今天设备A新增了1.85平方公里,但是只有1.83平方公里的数据会被同步到服务器上,还有0.02平方公里的数据只会存在于手机里,不能被同步。设备B也是一样的情况。所以随着行走面积的不断增加,这部分的误差也会不断地增大。所以服务器上的数据永远会小于或者等于设备A或设备B上的数据。
对于这个bug,我用的是一个笨办法,就是定期把设备A和设备B上的APP卸载掉,然后重新安装,从Dropbox上恢复数据,相当于把定期把设备A和B上的数据改成和服务器上的数据一致。这样大家之间的误差又恢复到0,然后慢慢开始增长。。。
这个bug不知道是开发者在计算同步时有啥错误,还是故意而为之。大家有什么好的解决方法,也欢迎一起来讨论。


1楼2014-03-16 22:18回复
    有个猜测,当我们走重复的路线时,探索面积仍然会有少量增长,但地图上驱散迷雾的面积不会增加,是否可能同步数据按清晰区域的面积计算,所以重复探索增长的面积无法被完全同步。仅仅是我的一点想法,尚未尝试验证。


    来自iPhone客户端2楼2014-03-16 23:36
    收起回复
      我猜 走重复路险有增长是因为你每次都重复不路线不可能都是一模一样的 所以有少量增长


      来自iPhone客户端3楼2015-06-19 09:20
      收起回复
        修复一下就好。


        IP属地:浙江来自iPhone客户端4楼2015-06-23 08:24
        回复
          留名


          IP属地:四川来自iPhone客户端5楼2015-07-26 21:41
          回复
            技术贴


            IP属地:北京6楼2015-08-22 19:48
            回复
              @fermione


              来自iPhone客户端7楼2015-08-23 14:21
              收起回复