安卓GPS分组

3

我目前处于规划/研究阶段,准备开始我的大学毕业项目。我想制作一个以GPS/跟踪为重点的安卓应用程序。目标是将不同设备上的用户分组。一个用户可以生成一个密码,其他用户可以使用该密码来创建一个组。任何在此组内的人都可以在Google地图上看到彼此的位置。

我的问题是,要创建这样一个应用程序需要什么?我没有安卓开发经验,对Java和Python有基本的了解。

从我的理解来看,我认为我需要Google Maps API、服务器和数据库。

如果您能提供任何文章/教程或建议,我将非常感激。

1个回答

1

来自Android端:

  • 为了获取GPS位置,您可能想使用GoogleApiClient。即使在某些位置GPS不可用,这也会给您良好的定位结果,因为它还使用Wi-Fi进行本地化,并具有一些其他很酷的选项。 请查看此教程: http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/

  • 要处理与服务器的连接,您可能会对使用Retrofit或至少Unirest感兴趣。这些库有助于向您的服务器发出请求。

  • 要显示地图,您可以使用Google MapsOpenStreetMap

来自双方:

  • 为了向服务器发送信息并接收响应,您可能需要使用一些序列化工具。考虑使用JSON进行通信,例如可以使用GSON实现此目的。网络上有许多使用此工具的教程。例如:http://www.javacreed.com/simple-gson-example/

来自服务器端:

  • 看看Spring Boot Framework。它是一个非常强大的框架。对于初学者来说可能有点太多,但了解一下也是很好的。它将为您提供一个使用易于维护代码的服务器的可能性。您只需编写一个方法并用@RequestMapping("/players")进行注释。

  • jOOQ会让您能够构建类型安全的SQL查询。虽然不是必须的,但它会让事情变得更容易。

  • 虽然它可能是一个小应用程序,但您可能会有兴趣使用一些数据库连接池。例如:HikariCP

  • 数据库:您必须选择您的数据库引擎。我建议使用PostgreSQLPostGIS插件,因为使用它们,您可以轻松计算一个人到另一个人的距离。它将为您处理地球的曲率。通常,这对于存储位置数据很有用。

你可以在电脑上让所有东西活起来,或者使用云计算服务提供商之一。例如,Amazon Web Services 提供 EC2 实例和关系型数据库,如 PostgreSQL,并提供免费层,因此您可以在有限的使用和有限的时间内免费使用他们的服务。他们还对学生友好。查看 GitHub 学生开发者包

嗨@Defozo,感谢您详细的回答,我会仔细研究这些内容。通过随机生成密码连接设备的方法对于我想要实现的目标是否有效,或者有更好的方法来连接设备以查看彼此的位置? - colin
1
这取决于你想要实现什么。分享位置的目的是什么?他们可以通过共享链接相互连接吗?还是需要在现实生活中传递密码? - Defozo
我希望一个人可以进入应用程序并创建一个群组,然后该人可以将该群组的密码提供给他们的朋友,以便他们加入该群组。当人们加入该群组时,他们的位置将显示在地图上,并且可以跟踪人员。例如,如果你和朋友外出迷路了,你可以进入应用程序并查看他们的位置以找到他们。我的计划是,如果您创建了一个群组,它将生成一个随机的密码/密钥,其他用户可以使用该密码/密钥相互连接。我想知道这是否是一个不好的方法,或者是否有更好的方法? - colin
1
我不是用户体验专家,但我认为你的方法通常是可以的。但请考虑将链接添加到你的群组中,这样你就可以轻松地将它们发送给你的朋友,他们可以通过点击链接而不是输入密码来共享他们的位置。你甚至可以在你的服务中进行一些注册,以便用户可以在应用程序内相互邀请。但不要让编写程序变得太复杂。从简单的事情开始,然后再添加更多功能。 - Defozo
嘿 @defozo,那是个好主意。我会从简单的开始,然后逐步深入。你真的很有帮助,非常感谢。 - colin
不用客气。如果你觉得我的回答有帮助,请接受它 :) - Defozo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接