我正在为博物馆之旅编写一个应用程序。我希望我的应用程序知道用户在建筑物中的位置,用户是否站在特定的房间中,在特定的作品前面等。GPS
在内部不起作用。 (使用 WiFi 定位可以工作,但我知道 Apple 不再使用 Skyhook,所以我不知道
在哪里注册我的基站。)由于 GPS 不起作用,看起来像是有一个专门的设备已知位置并让应用程序检测该设备,就可以工作。但根据我的研究,这看起来也不容易:
• 无法检测附近的 WiFi 基站,因为 Apple 不允许通过公共 API 查询基站。
• 仅当设备已位于同一 WiFi 网络上时,才能通过 Bonjour 查找设备。并且客人的手机不会连接到我们的 WiFi 网络。
• GameKit...嗯...还没有看到其中的角度。
有人对如何实施有想法吗?
谢谢!
I'm writing an app for a museum tour. I'd like my app to know where the user is in the building, if the user is standing in a particular room, in front of a particular work, etc.
GPS doesn't work inside. (Using WiFi positioning could work, but I know Apple doesn't use Skyhook anymore, so I don't know where I would register my base stations.)
Since GPS won't work, it would seem like having a specialized device in a known location and having the app detect that device, could work. But based on my research, this doesn't look easy, either:
• There's no way to detect nearby WiFi base stations because Apple doesn't allow querying for base stations via public APIs.
• Finding a device via Bonjour only works if the devices are already on the same WiFi network. And the Guest's phone won't be on our WiFi network.
• GameKit...hmm...don't yet see an angle there.
Does anyone have ideas on how this could be implemented?
Thanks!
发布评论
评论(9)
我建议蓝牙。我对类似的问题做了一些初步工作,使用了一些代码来观察在我家的房间之间走动时手机可以看到哪些蓝牙设备。
您不必精确定位蓝牙设备的实际位置;如果您可以看到设备 A 和 B 但看不到 C,那么您就在这个区域中,如果您可以看到所有三个设备,那么您就在这个区域中,等等。通过一点点“观察”信号变化,您可以查明它们的位置。位置更近,例如我可以看到 A,但看不到 B 或 C,10 秒后我可以看到 A 和 B,那么我很有可能朝向 A+B 区域的仅 A 一侧; 10秒后,我可以看到B+C,但不再是A,那么可能性就很大了,我更接近从A+B穿越到B+C的区域,等等。
虽然我没有彻底测试它,但我的结果他们非常积极地建议我的客户进行一些更强大、更真实的测试是值得的,而且这可能会很好地工作。信号反弹可能会出现问题,可能需要一些屏蔽或类似的东西,但这似乎确实可行。
I suggest Bluetooth. I did some preliminary work on a similar problem, played around with some code for watching which bluetooth devices were visible to the phone while walking between rooms of my house.
You don't have to pinpoint precisely where the bluetooth devices actually are; if you can see device A and B but not C then you're in this area, if you can see all three then you're in this area, etc. With a little bit of "watching" the signal changes you can pinpoint their location more closely, e.g. I can see A but not B or C and 10 seconds later I can see A and B then odds are good that I'm towards the A-only side of the A+B area; when 10 seconds later I can see B+C but no longer A then odds are good I'm closer to the area where you cross from A+B to B+C, etc.
Though I didn't test it exhaustively, my results were sufficiently positive to advise my client that some more robust, real-worldish testing was worthwhile, that this would likely work just fine. There might be issues with signal bounce that might require some shielding or that kind of thing, but it does seem feasible.
我可能会在建筑物的墙壁上贴上数百个二维码。
I would probably stick some hundred QR-codes on the walls of the building.
条形码(传统或二维)怎么样?这些可以作为工作描述的一部分打印。
How about barcodes (traditional or 2D)? These can be printed as part of the work description.
我唯一能想到的是蓝牙,但我认为这几乎不可能实现。
大多数人身上都有一两个 RFID 标签,如果他们允许的话,也许你可以安装一些探测器。我知道我携带 3 种不同的钥匙(车钥匙、大楼通行证),甚至更多。
The only thing I can think of is bluetooth, but I'd think that would be nearly impossible to get right.
Most people have one or two RFID tags on them, if they allow it maybe you could have a handful of detectors rigged up. I know I carry 3 different ones (car keys, building passes) and maybe more.
这是一个荒谬的想法:在建筑物周围设置扬声器,发出超出可听范围的高音调脉冲信号。每个扬声器都会发出独特的声音,可以识别和三角测量。
只要有足够的 DSP,它就可以工作。不过,我为附近的狗、猫和青少年感到遗憾。
或者你可以尝试部署自己的 GPS 站,但我敢打赌,穿着黑色风衣的男人会乘坐一辆没有标记的面包车来拜访你。
Here's a ridiculous idea: set up speakers around the building emitting high pitched pings beyond audible range. Each speaker would emit a unique sound which can be identified and triangulated.
With enough DSP it just might work. I'd feel sorry for any dogs and cats and teenagers in the vicinity though.
Or you could try deploying your own GPS stations -- but I'm willing to bet that you'd get a visit from men in black trench coats arriving in an unmarked van.
你能制造一些小型设备来完成这项任务吗?即制作一个红外接收器,可以识别红外发射的代码并发出声音信号,供 iPhone 通过耳机麦克风插头进行解释。
这是一个纯麦克风,但我认为它可以用红外传感器制成。
而且...这是一款既能感应红外信号又能发射红外的产品。 Redeye 迷你。然后,您将需要一些用于房间以及可能靠近特定工作的发送器设备。
Can you manufacture some small device for the task? ie making an IR receiver that can identify a IR emitted code and make a sound signal for the iPhone to interpret through the headphone mic plug.
Here is a pure mic but I think it could be made with an IR sensor instead.
And...here is a product that does both sensing IR signals and emits IR. Redeye mini. Then you will need some sender devices for the rooms and perhaps near a particular work.
去年夏天,我自己在实习期间遇到了这个问题,因为我正在帮助进行的研究,我知道不涉及额外硬件或用户参与的唯一真正的解决方案是使用私有 API 并避免使用应用程序商店。
显然,只有当您完全控制游览中使用的硬件(即您提供 iPhone)时,这才真正有效。如果您确实提供了 iPhone,那么您可以手动将应用程序部署到它。显然这不是一个理想的情况,但它会起作用。
正如其他人提到的,使用二维码是该问题的另一种解决方案,但需要用户主动寻找二维码来获取游览信息。对于单个展品来说,这会很有效,但它有局限性,特别是如果没有方便的地方放置它们。
I ran into this problem myself last summer during an internship, because of the research I was helping to conduct I know the only real solution that doesn't involve extra hardware or user involvement is to use the private API and avoid the app store.
This obviously only really works if you have complete control over the hardware being used on the tour (I.E. you provide the iPhone). If you do provide the iPhone then you can deploy the app to it manually. Obviously that isn't an ideal situation but it would work.
As others have mentioned the use of QR-codes is another solution to the problem but requires the user to actively look for the codes to get the information for the tour. For the individual exhibits this would work quite well but it has limitations especially if there isn't a convenient place to put them.
我去了一家博物馆,那里他们使用了不同的方法。
在每个地点,电话用户将代码发送到一个号码,并收到一条短信。
也许你可以做类似的事情。
I went to a museum where they used a different approach.
At each location, the phone user texted a code to a number, and received a text message.
Perhaps you could do something like that.
这是一个想法。设置多个蓝牙设备,而不是让手机找到其位置。让计算机确定哪些蓝牙设备可以看到手机以及信号强度如何,然后使用该信息来确定手机所在的位置。
或者,您可以在每个展品上放置 BT 设备,然后找出距离用户最近的设备。
Here's an idea. Instead of having the phone find its location, set up multiple Bluetooth devices. Have a computer determine which Bluetooth devices can see the phone and what the signal strength is, then use that information to determine where the phone is.
Or you could just have BT devices at each of the exhibits and figure out which one is closest to the user.