代码之家  ›  专栏  ›  技术社区  ›  Greg Maletic

在室内可靠地定位iPhone?

  •  4
  • Greg Maletic  · 技术社区  · 14 年前

    我在写一个博物馆巡展的应用程序。我想让我的应用程序知道用户在大楼里的位置,如果用户站在一个特定的房间里,在一个特定的作品前,等等。

    Apple doesn't use Skyhook anymore ,所以我不知道在哪里注册基站。)

    由于GPS不起作用,似乎在已知位置有一个专门的设备,让应用程序检测到该设备,就可以起作用。但根据我的研究,这看起来也不容易:

    因为苹果不允许通过公共api查询基站,所以无法检测到附近的WiFi基站。

    只有当设备已经在同一个WiFi网络上时,通过Bonjour查找设备才有效。客人的电话也不会在我们的WiFi网络上。

    GameKit…嗯…还没看到角度。

    谢谢!

    9 回复  |  直到 14 年前
        1
  •  2
  •   Matthew Frederick    14 年前

    我建议使用蓝牙。我在一个类似的问题上做了一些初步的工作,在家里的房间里走来走去的时候,我玩了一些代码来观察手机能看到哪些蓝牙设备。

    你不必精确地指出蓝牙设备的实际位置;如果你能看到设备A和B而不是C,那么你就在这一区域,如果你能看到所有三个,那么你就在这一区域,等等。只要稍微“观察”一下信号的变化,你就能更精确地指出它们的位置,e、 g.我可以看到A,但不能看到B或C,10秒后我可以看到A和B,那么我朝着A+B区域的A侧移动的几率是很好的;10秒后我可以看到B+C,但不再是A,那么几率是很好的,我就更靠近你从A+B到B+C的交叉区域,等等。

    虽然我没有做详尽的测试,但我的测试结果是非常积极的,足以告诉我的客户,一些更稳健、更现实的测试是值得的,这可能会工作得很好。信号反弹可能会有问题,可能需要一些屏蔽或类似的东西,但它看起来确实可行。

        2
  •  2
  •   Matthias Bauch    14 年前

    我可能会在大楼的墙上贴上几百个二维码。

        3
  •  1
  •   Paul Ardeleanu    14 年前

    条形码(传统的还是二维的)怎么样?这些可以作为工作说明的一部分打印。

        4
  •  0
  •   Bill K    14 年前

    我唯一能想到的是蓝牙,但我想这几乎不可能实现。

        5
  •  0
  •   Rei Miyasaka    14 年前

    有一个荒谬的想法:在大楼周围设置扬声器,发出超出可听见范围的高音。每个扬声器都会发出一种独特的声音,这种声音可以被识别和三角化。

    如果有足够的数字信号处理器,它可能会工作。不过,我会为附近的狗、猫和青少年感到遗憾。

    或者你可以试着部署你自己的GPS定位站——但我敢打赌,你会看到穿着黑色战壕大衣的人乘坐一辆没有标记的面包车来拜访你。

        6
  •  0
  •   epatel    14 年前

    这是一个纯麦克风,但我想可以用红外传感器代替。 alt text

    Redeye mini . 然后,您将需要一些发送设备的房间,也许附近的一个特定的工作。

        7
  •  0
  •   James    14 年前

    去年夏天,我在实习期间遇到了这个问题,因为我正在帮助进行的研究,我知道唯一不涉及额外硬件或用户参与的真正解决方案是使用私有API,避免使用app store。

    这显然只有在您完全控制巡演中使用的硬件(即,您提供iPhone)时才有效。如果你确实提供了iPhone,那么你可以手动将应用程序部署到它上面。显然,这不是一个理想的情况,但它会工作。

    正如其他人提到的,使用二维码是解决这个问题的另一个办法,但需要用户积极寻找代码,以获取旅游信息。对于个别展品来说,这样做会很好,但也有局限性,尤其是在没有方便放置展品的地方。

        8
  •  0
  •   Gilbert Le Blanc    14 年前

    我去了一个博物馆,他们用了不同的方法。

    在每个位置,手机用户都会给号码发短信,然后收到一条短信。

    也许你可以做这样的事。

        9
  •  0
  •   coolguy    12 年前

    有个主意。不要让手机找到它的位置,而是设置多个蓝牙设备。让计算机确定哪些蓝牙设备可以看到手机以及信号强度,然后使用该信息确定手机的位置。

    或者你可以在每个展品上安装BT设备,找出哪一个最接近用户。