我想将.shp转换为.gpx。

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


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


我该如何解决此错误?

评论

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

在这种情况下,如果错误提示您不熟悉的参数或设置,请查看相关的GDAL或OGR格式页面,以了解所使用的驱动程序,例如GPX。在某些情况下,您不会盲目地应用选项,因为这可能会损害您的数据。就此而言,如果不首先研究为什么失败,就不想在ogr2ogr中不加选择地使用-skipfailures。

#1 楼

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

GPX_USE_EXTENSIONS=YES


,或检查下面的“跳过属性创建”(或使用您的语言命名的名称)。 br />
Layer字段中,您也可以输入

FORCE_GPX_TRACK=YES


以获取路线而不是路线。

评论


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

–ePascoal
2012年11月9日14:26

恐怕这在出口上是不可能的。可以从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
2012年11月9日15:55

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

– AndreJ
2012年10月10日下午6:15

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

–ePascoal
2012年11月11日19:45



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

– AndreJ
2012年11月11日20:36

#2 楼

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


使用QGIS打开SHP文件
选择SHP层
图层>另存为...> GPX


#3 楼

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

#4 楼

您还可以使用明尼苏达州自然资源部的DNR Garmin。这是一个免费工具,可让您进行GPS数据的大量导入和导出

#5 楼

您可以如上所述:

GPX_USE_EXTENSIONS=YES


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

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

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