收集、存储和显示来自Foursquare、iCloud等的实时位置信息。

django-location的Python项目详细描述


Django位置

您是否在Foursquare上登记?你跟踪 你的跑步或自行车通勤 运行仪表 ?你使用iOS设备吗? 为什么让第三方界面成为你日常生活的唯一窗口 动作?

此django应用程序将使用由 Foursquare,iCloud,如果你碰巧是它的用户,Runmeter,和 将其存储在数据库中以供随意显示。

安装

您可以从pip安装:

pip install django-location

或者从github签出并安装源代码 存储库:

git clone https://github.com/latestrevision/django-location.git
cd django-location
python setup.py install

您需要将django social auth和django位置都添加到 project's urls.py ;从技术上讲,您可以使用任何您想要的url, 但是为了下面的说明,我们希望您 添加如下:

url(r'^location/', include('location.urls')),
url(r'', include('social_auth.urls')),

推荐的额外套餐

收集到的每一点也能提供给你什么 如果以下两个包是 已安装:

位置源

对于下面的一些消费者,特别是iCloud和Runmeter,您将 需要设置一个cron作业来处理某些周期性任务,您可以 通过添加cron作业来执行此操作:

python /path/to/your/manage.py location_consumer

我建议每隔5到10分钟运行一次,但是选择更长的时间 间隔只有很小的影响;或者减少采样频率 (对于iCloud消费者)或增加更新延迟(在 Runmeter使用者的情况)。

正方形

Foursquare在消费者中有选择 允许它立即将签入信息发布到api的设置 此应用程序提供的终结点。为了支持这一点,你需要 执行以下操作:

  1. 转到foursquare开发人员 站点 并创建新的消费者。

  2. 配置以下设置:

    FOURSQUARE_CONSUMER_KEY = "THECLIENTIDYOUJUSTGENERATED"
    FOURSQUARE_CONSUMER_SECRET  = "THECLIENTSECRETYOUJUSTGENERATED"
    
  3. 转到django location应用程序的配置url(通常 http://yourdomain.com/admin/location/locationsource/configure accounts/ ) 在登录到管理员时,单击"授权Foursquare" 按钮。这会带你到Foursquare的网站 配置选项,并授权您的web应用程序接收 从用户wi签入登录到Foursquare。

  4. 如果一切都安排好了,你不应该再做什么,但是 Foursquare确实为消费者提供了"发送测试按钮" 控制台,可用于验证所有内容是否正确 已连接。

  5. < > >

运行仪表

Runmeter 不提供API, 但允许您将应用程序配置为发送电子邮件 开始(和结束)跑步、骑自行车或 别的。要使用runmeter中的信息,我们将对其进行配置 将电子邮件发送到未使用的电子邮件收件箱(重要),并配置 django位置以使用这些电子邮件并提取坐标 从链接到KML文件。

  1. 配置Runmeter应用程序以发送开始和结束 通过POP3或IMAP访问邮箱的通知。
  2. 设置django邮箱以使用来自此邮箱的邮件(请参阅 django邮箱的 文档)。
  3. 更新用户的位置使用者设置记录以设置字段 runmeter_e mail 匹配用户设备的电子邮件地址 将发送Runmeter更新。
  4. < > >

iCloud

icloud 提供名为"查找我的iPhone"的服务 这允许您随意请求设备的位置。这个图书馆 为您提供使用此服务的位置信息的简单方法 作为您的位置来源之一。

  1. 识别与您的帐户关联的设备,您可以 使用 列表iCloud设备 管理命令来执行此操作:

    python /path/to/your/manage.py list_icloud_devices <icloud username> <icloud password>
    

    用您的 iCloud用户名和密码。

    这将打印设备及其ID的列表;在我的例子中,它将打印 像这样:

    Name: MacBook Air 11": sinclair -- ID: reGYDh9XwqNWTGIhNBuEwP1ds0F/Lg5t/fxNbZ3V939hhXawByErk+HYVNSUzmWV
    Name: iPhone 4S: Adam Coddingtons iPhone -- ID: i9vbKRGIcLYqJnXMc1b257kUWnoyEBcEh6yM+IfmiMLh7BmOpALU+w==
    
  2. 更新用户的位置使用者设置记录以包括用户的 iCloud用户名 iCloud密码 ,以及来自 您希望收集哪些位置信息。

  3. < > >

使用模板标记显示位置

您可以使用 当前位置 模板标记来收集 给定用户的最近位置。

简单示例:

{% load current_location %}
{% current_location of 'adam' as location_of_adam %}

<p>
    {{ location_of_adam.user.username }} is at {{ location_of_adam.location.coords.1 }}, {{ location_of_adam.location.coords.0 }}
</p>

如果你安装了"Django社区"和"Django人口普查地点", 您还可以打印城市和社区信息:

{% load current_location %}
{% current_location of 'adam' as location_of_adam %}

<p>
    {{ location_of_adam.user.username }} is in the {{ location_of_adam.neighborhood.name }} neighborhood of {{ location_of_adam.city.name }}, {{ location_of_adam.city.get_state_display }}.
</p>

你可能并不总是有一个给定的社区或城市信息 点,也许你想用谷歌地图来显示地图 api;这里有一个充实的版本:

pip install django-location
0 比特德里徽章

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
尝试通过java驱动程序连接时,mongodb服务器上的SSLhandshake失败   使用PlayFramework的Azure网站中的java Logback   java在另一个ArrayList中使用ArrayList处理复杂的JSON响应   java无法在另一台机器上运行eclipse tomcat中的war文件   java GZIPOutputStream有什么替代方案吗?   java Nashorn调试在Nashorn中运行的javascript   java文本短信未发送,即使toast显示已发送   java Hibernatesearch 5.0 spatial不确定是否在散列中存储lat/lon   java我想创建一个带有文本视图的计数器   java安卓:如何正确地同步资源   java使用mockito。当不知道方法调用的参数时   firebase Java使用HTTP v1发送错误字符的中文通知   java Hibernate无法映射到表?   java使用对象映射器解析复杂JSON   java Selenium Grid 2并行测试用例执行   java所有项目在列表视图中重复