0

基本上我想在 GPS 的帮助下使用谷歌地图跟踪另一台设备。你能给我一个关于如何有效地做到这一点的建议吗?

我的想法是:我将在远程数据库中写入我要跟踪的设备的经度和纬度。另一个将每 5 秒或其他时间获取数据。

那效率高吗?还是有其他方法可以将坐标直接发送到其他设备?

谢谢!

4

3 回答 3

3

选择取决于为位置提交选择的时间间隔及其来自其他客户端的轮询。

如果它每 3 分钟(我觉得很现实)或更多。我想正常的 http 提交到您的远程服务器并使用 http 获取相同的内容可以解决问题。这将是您想要实现的超级简单的实现。

但是,如果您正在寻找诸如即时消息之类的实时信息。您必须进行 xmpp 连接。openfire 服务器实现和 smack 库可能对您有所帮助。

这是链接。

从这里下载服务器

http://www.igniterealtime.org/projects/openfire/

从这里检查客户端代码

http://developer.samsung.com/android/technical-docs/Building-a-Chat-Application

用您的本地 openfire 服务器创建一个和 ip 和端口替换 google 凭据。

仅以下两种。我在不到 3 个小时的时间内按照上面的步骤为 android 和服务器创建了一个简单的聊天应用程序。来吧,自己尝试。

希望能帮助到你

于 2013-10-18T07:53:33.900 回答
1

我建议将位置更改侦听器设置为对最小距离做出反应,而不仅仅是时间间隔。发帖客户端可能会静止一段时间,获取 GPS 并发送它会浪费 CPU 时间、带宽和电池。

此外,5 秒可能很短。它会很快耗尽电池并消耗带宽。

如果您确定必须在应用程序启动时始终跟踪客户,那么定期发布就可以了。如果接收电话只需要不时的位置,那么拉请求会更经济(即他应该从另一部电话请求位置)。

最后,这可能很方便:http: //googlecloudplatform.blogspot.com/2013/06/get-your-mobile-application-in-the-cloud-with-mobile-backend-starter.html。该示例实际上是您正在构建的东西,并不相同。

PS 没有办法将数据“直接”发送到另一部手机(除非它始终连接到具有公共 IP 地址和保留本地 IP 的同一个热点,99% 的情况并非如此)。这意味着您应该使用 Google Cloud Messaging 或类似的实现。

于 2013-10-18T07:55:55.657 回答
0

我认为最好使用推送通知,服务器通过 http 查询发送到设备命令“给我你的位置”和设备应答服务器,例如,也可以轻松地将数据从 5 秒更改为 30 秒。

于 2013-10-18T07:48:25.947 回答