使用Python在移动电话中实时跟踪GPS

时间:2017-09-04 18:28:21

标签: python google-maps google-maps-api-3 gps kivy

抱歉,我在这方面处于noob级别:手机中的实时gps跟踪。我已经对此进行了深入的搜索,但对我来说一切都是新的,我不知道在哪里以及如何开始。

这是我们学校的项目。我们想要做的是开发一个使用python,kivy和google map api的移动应用程序,它能够跟踪其他手机,这些手机也在使用我们将要创建的移动应用程序。一般来说,使用我们的应用程序在该区域(半径1公里)内有几部手机,它们相互跟踪。 (这只是我们学校项目的一部分:跟踪部分)。

我看过视频,阅读论坛等等。但是,我没有得到任何东西,因为一切对我来说都是新的。我担心的是(注意:我之前创建了一个移动应用程序):

  1. 我在哪里以及如何开始?
  2. 是否有任何python模块可供使用?那些是什么?
  3. 步骤是什么? (对不起......我不知道这是否是正确的问题)。
  4. 请。我知道我是菜鸟。非常感谢您的帮助,您将成为我们的英雄,使我们免于失败。 :d

2 个答案:

答案 0 :(得分:1)

  1. 您首先搜索网络,Google,YouTube,...您说您已经完成了。继续回答2或阅读更多。我找到了一些有趣的链接:
  2. 是的,有一个Python module for Google Maps。同样如第1点的第二个子弹中所提到的,有一个名为GooMPy的简单项目,它显然为Google Maps api提供了gui,尽管我还没有对它进行过多的研究。
  3. 知道上面的内容我会很自然地开始编码。但首先你需要问问自己:“我知道下一步该怎么做吗?”

    • 了解如何获取手机的GPS位置(查看上面的链接之一)。
    • 决定从手机接收数据的位置(您需要一台能与手机通信的服务器,接收当前的GPS位置,将其他用户的位置发送给特定用户等)。
    • 我知道如何实现服务器端和客户端的东西吗?我知道如何设置服务器?我知道手机如何与服务器通信吗?您希望将服务器用作中介,原因有两个:
      1. 与服务器的通信比P2P更容易实现(点对点,在你的情况下是手机到手机)。
      2. 主要原因是,如果您使用服务器作为中介,则需要对服务器进行大量工作,从而降低手机上的电池使用量,减少手机上的互联网流量(如果你有无限的数据传输,后者可能不是问题,但仍然会导致加载时间变慢)。需要完成的工作是:收集有关其他活动用户的数据,将数据发送给活动用户,从活动用户检索数据。如果您实施P2P方式,手机需要做的是首先从所有其他在线手机上收集数据,然后将其位置发送到全部其他手机。如果您实施服务器方式,而不是提到的内容,手机只需将其位置发送到一个设备(服务器),并从一个设备接收有关其他用户的数据(再次服务器)。通过减少手机上的操作,您可以节省很多电池。

    一旦你知道如何做上述事情(可能更多),你可以问自己“我需要做什么? / 我需要采取哪些措施?为了完成我的项目?。你需要实现下一步:

    • 您的应用程序的主GUI;
    • 登录并注册;
    • 读取当前的GPS位置;
    • 将GPS位置发送到服务器;
    • 从服务器接收其他用户的GPS位置;
    • 在您的应用中嵌入Google Maps api和GUI(可能GooMPy已经是一个解决方案,我不知道)。
  4. 希望您觉得这很有帮助。我不能太解释,因为你需要自己做你的项目。如果您有任何其他问题,请在下方发表评论,我将进行编辑。     - 发送电流

答案 1 :(得分:0)

@ campovski的回答一般很好,但既然你使用kivy和android,你肯定想检查以下内容:

Plyer [1]用于在移动设备上从python获取gps位置,它可以让应用程序轻松获取自己设备的gps数据。

现在,您希望与应用的其他用户同步,因此您需要一些沟通方式,更容易配置应用与服务器通信并发送有关其位置的更新,并获取其他人的位置返回,您可以使用bottle [2]或flask [3]或任何服务器端技术使用简单的休息服务器,但显然python更好:)(我完全没有偏见;))

然后你会想要在地图上显示你的朋友,为此,因为你使用kivy,你肯定想看看garden.mapview [4],它会给你一个小部件来显示地图使用标记,您可以在获得新数据时保持最新。

你仍然有一些工作要做,与服务器通信,与小组建立共享会话,安排更新和东西,但是大部分工作已经完成,你只需连接点,好运气。

[1] plyer:https://github.com/kivy/plyer

[2]瓶:https://bottlepy.org/docs/dev/

烧瓶:[{3}}

[4] garden.mapview http://flask.pocoo.org/