Answers:
使用随QGIS分发的ogr2ogr命令行工具。在Windows中,从QGIS程序组中打开OSGeo4W Shell,然后输入
for %p in (path_to_gpx_files\*ride*.gpx) do ogr2ogr path_for_output\gpx.shp -append %p track_points -fieldTypeToString DateTime
Unix bash shell中的等效命令为
for file in path_to_gpx_files/*ride*.gpx; do ogr2ogr path_for_output/gpx.shp -append "${file}" track_points -fieldTypeToString DateTime; done
确保输出文件(gpx.shp)之前不存在,然后ogr2ogr将从所有带有“ ride”的gpx文件中生成一个单个shapefile。在http://www.gdal.org/drv_gpx.html上有一些有关ogr gpx驱动程序的注释。
您可以一次导入多个GPX文件,尽管系统会提示您每个文件用于所需的数据层。超过400条痕迹将变得不那么有趣。
您可能要看看ogr2ogr。这是地理文件转换的“瑞士军刀”,它将几乎将任何地理格式转换为任何其他兼容的(矢量/栅格)地理格式。
一个ogr2ogr呼叫看起来像
ogr2ogr -f "ESRI Shapefile" example.shp example.gpx
您可以通过编程方式调用它(例如,从python脚本,.bat文件或bash脚本),以遍历每个ride * .gpx并将其转换为shapefile。
话虽这么说,但我无法从OpenStreetMap下载的一些随机gpx跟踪上使用此跟踪(ogrinfo也不喜欢它们,尽管QGIS已将其加载)。但是我能够从另一个来源打开GPX文件。
尝试跑步
ogrinfo example.gpx tracks
看看是否有任何有用的输出。如果获得驱动程序列表,则失败。
您的里程可能会有所不同,值得一试。
注意,每个shape文件将结束自己的目录,所以如果你不想写代码的麻烦,你可以尝试CSV代替.. 看到这个博客帖子。
要进行合并,您可以(使用代码)将所有shapefile复制到一个目录中,然后使用“ 向量”>“数据管理工具”>“将shapefile合并到一个目录”
如果您喜欢所示的hexbin样式,则不妨查看MMQgis插件。这样就可以创建六边形网格,然后可以用来进行“多边形中的点”分析。
#!/bin/bash for i in $( ls ./*.gpx ); do ogr2ogr gpx.shp -append $i track_points -fieldTypeToString DateTime done
for %p in (C:\Data\*.gpx) do ogr2ogr gpx.shp -append %p track_points -fieldTypeToString DateTime
。gpx.shp一定不能存在,然后ogr2ogr会生成一个shapefile。