GPX2空间性

gpx2spatialite的Python项目详细描述


Author:Daniel Belasco Rogers <dan@planbperformance.net>, Peter Vasil <mail@petervasil.net>
https://travis-ci.org/ptrv/gpx2spatialite.svg?branch=masterLatest VersionSupported Python versionsLicense

用于将GPX文件导入Spatialite数据库的脚本。

使用Tomo Krajina的GPX模块。GPX2Spatialite需要一个或 充满gpx文件的文件夹并将其导入到Spatialite Spatial中 数据库。导入时,文件被散列并输入到表中 确保不添加具有相同内容的文件 两次。轨迹点的空间信息存储在 Spatialite数据库中的表、轨迹点和轨迹线 是相关的。你可以阅读更多关于陈述理由的细节 来自如下GPX文件的数据: <;http://planbperformance.net/dan/blog/?p=984>;

必需的“user”参数是从 不同的用户进入同一个数据库。这是因为 GPX2Spatialite是作为DrawingLife的导入程序编写的 <;https://github.com/ptrv/drawinglife>;这是一种可视化 彼得·瓦西尔为丹尼尔·贝拉斯科·罗杰斯和 索菲亚新的艺术项目,用全球定位系统记录他们走到哪里 分别从2003年和2007年起(<;http://belasconew.com/works/lifedrawing/>;)

如果只有一个用户要输入,只需选择任意名称并导入 此名称下的所有文件。

因为DrawingLife在屏幕顶部有文本显示 动画屏幕的当前位置,此信息为 由trackpoints表中的citydef\u uid列提供 指向citydefs表。此列也填充在 默认情况下导入。如果不需要,可以设置 选项-s–跳过将加快导入速度的位置 相当地。

依赖关系

Linux和Mac
  • Python:
    • gpxpy
    • pyspacealite,pysqlite2(支持加载扩展)
  • 其他库:
    • libspacealite
    • libsqlite

安装

Linux和Mac

GPX2Spatialite可通过PIP获得。 您只需运行:

pip install gpx2spatialite

或者要使用用户范围安装它,请运行以下命令:

pip install gpx2spatialite --user

确保$HOME/.local/binPATH环境变量中可用。 否则,从shell运行gpx2spacealite可执行文件时,将找不到它:

PATH=$PATH:$HOME/.local/bin

窗口

  • 下载适用于Windows的Python 2.7 32位软件
  • 安装PIP。(见说明here
  • 使用pip install gpxpy
  • 安装gpxpy
  • http://www.gaia-gis.it/gaia-sins/windows-bin-x86/下载mod_spatialte 并将所有dll提取到C:\Python27\Scripts
  • sqlite website下载sqlite3.dll (类似于'sqlite-dll-win32-x86-3080704.zip') 并用下载的版本覆盖C:\Python27\Scripts\DLLs中的sqlite3.dll。 (这确保sqlite3.dll能够加载扩展)
  • 使用pip install gpx2spatialite
  • 安装gpx2spacealite

用法

可以读取单个文件:

gpx2spatialite import -d <path/to/database> -u <user_id> <path/to/gpx>

或多个文件夹:

gpx2spatialite import -d <path/to/database> -u <user_id> <path/to/folder1> <path/to/folder2>

可以同时指定文件和文件夹:

gpx2spatialite import -d <path/to/database> -u <user_id> <path/to/folder1> <path/to/gpx>

创建新数据库

使用子命令运行脚本以创建新数据库并对其进行初始化:

gpx2spatialite create_db <path/to/new/database>

城市

每个轨迹点都有一个分配给它的位置,用于 drawinglife动画。

除非选项-s–跳过位置被传递。

位置在数据库中的citydefs表中定义,创建 并通过运行“gpx2spacealite create_db”自动填充。

将CITYDEFS导入现有数据库:

gpx2spatialite citydefs -i <path/to/input.sql> <path/to/database>

导出citydefs表:

gpx2spatialite citydefs -e <path/to/output.sql> <path/to/database>

将新位置添加到citydefs表后,可以查找 当前未知的轨迹点并将其分配给任何相关的, 新定义的位置:

gpx2spatialite update_locs <path/to/database>

如果您重新定义了当前分配的位置或完全 更改了citydefs表,您将需要重新定义 数据库中的trackpoint,使用-a或者 -上述脚本的所有位置选项:

gpx2spatialite update_locs -a <path/to/database>

单元测试

存储库包含独立的py.test(版本2.5.2)脚本 运行测试.py

运行以下命令运行测试:

python setup.py test
Local Variables: mode: rst End:

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

推荐PyPI第三方库


热门话题
java prometheus占用JDBC连接   java如何在ApacheDerby中选择聚合的学生/班级数据?   Java支持内部/本地/子方法吗?   java如何向Jsoup添加带有用户名和密码的代理?   servlets介绍如何创建java。木卫一。具有URI的文件对象?   java使用布尔值设置实体的字符串字段?   java API请求:无法从Android Studio工作   java无法从URL捕获JSON响应   Java中的amazon web服务AWS DynamoDB和MapReduce   为重载方法强制转换Java任务   JavaSolr+SpringRoo为每个客户提供单独的索引   父对象的java调用方法,即使子对象重写它?