使用QGIS将.shp转换为.gpx?


34

我想将.shp转换为.gpx。

使用GIS,我打开了shapefile,并尝试“另存为” gpx,但它给出了OGR错误:

创建字段ObjectId失败(OGR错误:GPX架构不支持名称为“ ObjectId”的字段。请使用GPX_USE_EXTENSIONS创建选项来允许使用元素)。

如何解决此错误?


我在另一台具有相同操作系统的PC上进行了尝试,并且可以正常工作!安德烈·乔斯特(Andre Joost)是对的!我仍然不知道为什么这在这里有效而在另一台PC上不起作用。我应该安装GPX驱动程序吗?:| 感谢AndréJoost!
ePascoal 2012年

在这种情况下,如果错误提示您不熟悉的参数或设置,请检查相关的GDALOGR格式页面,以了解所使用的驱动程序,例如GPX。在某些情况下,您可能不会盲目地应用某个选项,因为这可能会损害您的数据。案例中的点,你会不会想不加区别适用-skipfailuresogr2ogr在没有研究为什么它的失败摆在首位。
elrobis

Answers:


30

只需执行以下操作即可:在Data source字段中,输入

GPX_USE_EXTENSIONS=YES

或检查下面的“跳过属性创建”(或使用您的语言命名的名称)。

在该Layer字段中,您也可以输入

FORCE_GPX_TRACK=YES

获取路线而不是路线。


谢谢,它确实有效,但是当我将shp转换为gpx时,我丢失了Id字段。我所有的gpx字段都为空。如何将我的“ id”字段(shp文件)与“名称”字段(gpx文件)相对应。
ePascoal 2012年

5
恐怕这在出口上是不可能的。可以从gdal软件包中使用ogr2​​ogr.exe:ogr2ogr -f GPX -dsco GPX_USE_EXTENSIONS = NO shpexport.gpx D:\ path \ to \ your \ test.shp -lco FORCE_GPX_TRACK = YES -sql“ SELECT id AS name from layername” “
AndreJ

2
您可以使用表管理器插件在导出之前将shapefile中的id字段重命名为“ name”,然后再将其更改回。如有必要,您必须将pyqgis.org/repo/contributed添加到存储库列表中。
2012年

1
我试图在导出前将shapefile中的id字段重命名为name,但是不起作用。我正在寻找一个应用程序,该应用程序添加了一个名为PostGPS的python应用程序,但是不起作用。我也尝试使用ogr2​​ogr使用您的脚本,但未成功:/我做错了什么。还有其他可能的解决方法吗?
ePascoal 2012年

奇怪,它在这里工作。您必须在“另存为”对话框的上方字段中设置“ GPX_USE_EXTENSIONS = YES”。选中该复选框将不起作用。对于ogr2ogr,您必须使用图层名称,而不必与shapefile名称相同。
2012年

1

或者,您可以尝试以下步骤:

  1. 使用QGIS打开您的SHP文件
  2. 选择您的SHP层
  3. 图层>另存为...> GPX

1

一个简单的技巧对我们有用。在主csv文件中,第一个字段(ID /标签)应命名为“名称”。然后导入该文件并另存为.gpx



0

您可以强制:

GPX_USE_EXTENSIONS=YES

如上所述。但是,如果您不了解或管理您的预测,则会遇到其他问题。您会发现数据中的错误-如果CRS与shapefile的投影方式或工作空间的投影方式不同,则点或轨迹的不精确性;GPS装置需要WGS84。

我发现最好的解决方案是从处理工具箱中选择“重新投影层”。这使您可以选择批量转换多个图层,正确地重新投影数据并另存为gpx文件。将图层重新投影到gpx

我尚未学会解决的唯一问题是如何保留标签。我希望有人可能知道如何做或有技巧做到这一点-这似乎不是一个选择。我不得不使用笨拙的Garmin BaseCamp软件来单独单击和修改标签,或者进入gpx代码并手动键入代码-两者都很耗时。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.