从你的Google位置数据生成一个交互式地理热图

geo-heatmap的Python项目详细描述


地理热图

screenshot

这是一个脚本,它使用Python、Folium和OpenStreetMap从Google位置历史数据生成一个交互式地理热图。在

入门

1。安装Python 3+

如果尚未安装Python3+,请从https://www.python.org/downloads/获取它。您需要下载并安装最新版本的Python 3.x。截至2019年11月22日,这是3.8版。在

为了便于python版本处理,我建议通过pyenv安装它。在

2。获取您的位置数据

在这里你可以找到如何下载你的谷歌数据:https://support.google.com/accounts/answer/3024190?hl=en
在这里你可以下载谷歌存储在你身上的所有数据:https://takeout.google.com/

要使用这个脚本,您只需要选择并下载您的“位置历史记录”,默认情况下,Google将以JSON文件的形式提供给您。KML也是一个输出选项,并被接受用于此程序。在

3。安装脚本

command prompt or Terminal window中,navigate to the directory包含位置数据文件。然后,键入以下内容,然后按enter键:

pip install geo-heatmap

4。运行脚本

在同一命令提示或终端窗口中,键入以下内容,然后按enter键:

^{pr2}$

将上面的字符串<file>替换为以下任何文件的路径:

  1. Google Takeout中的Location History.jsonJSON文件
  2. 来自Google Takeout的Location History.kmlKML文件
  3. 从Google Takeout下载的takeout-*.zip原始下载,包含上述任一文件

示例:

单个文件:

geo-heatmap C:\Users\Testuser\Desktop\locations.json
geo-heatmap "C:\Users\Testuser\Desktop\Location History.json"
geo-heatmap locations.json

多个文件:

geo-heatmap locations.json locations.kml takeout.zip

使用流选项(对于内存错误的用户):

geo-heatmap -s locations.json

设置日期范围:

geo-heatmap --min-date 2017-01-02 --max-date 2018-12-30 locations.json

用法:

usage: geo-heatmap [-h] [-o] [--min-date YYYY-MM-DD]
                      [--max-date YYYY-MM-DD] [-s] [--map MAP]
                      file [file ...]

positional arguments:
  file                  Any of the following files:
                        1. Your location history JSON file from Google Takeout
                        2. Your location history KML file from Google Takeout
                        3. The takeout-*.zip raw download from Google Takeout
                        that contains either of the above files

optional arguments:
  -h, --help            show this help message and exit
  -o , --output         Path of heatmap HTML output file.
  --min-date YYYY-MM-DD
                        The earliest date from which you want to see data in the heatmap.
  --max-date YYYY-MM-DD
                        The latest date from which you want to see data in the heatmap.
  -s, --stream          Option to iteratively load data.
  --map MAP, -m MAP     The name of the map tiles you want to use.
                        (e.g. 'OpenStreetMap', 'StamenTerrain', 'StamenToner', 'StamenWatercolor')

6。检查结果

该脚本将生成一个名为heatmap.html的HTML文件。脚本完成后,此文件将在浏览器中自动打开。享受吧!在

常见问题解答

我尝试运行脚本时遇到“内存不足”错误或MemoryError。发生什么事?

您的LocationHistory.json文件可能很大,当脚本试图解析该文件时,Python内存不足。在

要解决此问题,请下载并安装64位版本的Python。为此:

  1. 转到python.org。在
  2. 下一步单击“查找与您的操作系统对应的Python链接?”在
  3. 单击“最新Python3 Release”链接。在
  4. 向下滚动到“文件”。在
  5. 单击下载x64版本。例如,在Windows上,这是“windowsx86-64可执行安装程序”链接。在
  6. 安装!在

如果这不能解决问题,您可以使用stream选项:

geo-heatmap -s <file>

这将比较慢,但将使用更少的内存来加载您的位置数据。在

我在运行pip install -r requirements.txtpython geo_heatmap.py <file>时得到一个SyntaxError。我做错什么了?

您可能正在使用python解释器来运行这些命令。试着让他们进去命令行.exe或Windows PowerShell(Windows)或终端(Linux、MacOS)。在

我收到错误消息TypeError: __init__() got an unexpected keyword argument 'max_value'。我能做些什么来解决这个问题?

尝试运行:

pip uninstall progressbar
pip install progressbar2

您可能已经安装了progressbar,它使用maxval作为__init__的参数。Progressbar2使用max_value。在

发展

此项目正在使用Poetry管理依赖项。你可以按照他们的指导安装。在

如果您想在此基础上进一步开发,在克隆此存储库并导航到其中之后,您可以启动并运行以下内容:

poetry install
poetry run geo-heatmap

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

推荐PyPI第三方库


热门话题
JFrame中的Java多线程   java Servlet异常映射   java无法从输出流读取   swing Java带来的小程序GUI问题   java什么原因导致错误“'void'类型此处不允许”以及如何修复它?   Java选择器select(长)与selectNow的区别   java自定义arraylist<mygames>获得不同   java Icepdf注释让页面消失   java反向整数数组   java I在生成同步“无法解析配置的所有依赖项”时遇到此错误:app:debugRuntimeClasspath   多个虚拟机上的java线程访问单个DB实例上的表,有时会导致性能低下和异常   swing更改Java中的默认按钮,使其看起来“更好”   java慢速MQ主题订阅。并行化不能提高性能   java运行Boggle Solver需要一个多小时。我的代码怎么了?   数据库中的java循环与应用程序中的java循环   正则表达式匹配${123…456}并在Java中提取2个数字?   java如何制作我们软件的试用版   Java内存参数计算   从另一个类调用方法时出现java问题