You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用GDAL ogr2ogr转换KML文件时生成空文件问题求助

解决Mac OS 10.12下ogr2ogr转换谷歌位置历史KML输出为空的问题

我之前也碰到过一模一样的情况——谷歌位置历史导出的KML用了特殊的扩展标签,默认ogr2ogr根本识别不到数据,给你几个一步步排查的方案:

1. 开启GX扩展标签解析(最核心的解决办法)

谷歌位置历史的KML里,轨迹点是存在<gx:Track>这类Google专属的扩展标签里的,默认GDAL不会解析这些标签,所以直接转换会输出空文件。你需要在命令里添加-oo GX_PARSE=YES参数来开启解析:

举个转GeoJSON的例子:

ogr2ogr -f "GeoJSON" output.geojson your_location_history.kml -oo GX_PARSE=YES

转Shapefile的话:

ogr2ogr -f "ESRI Shapefile" output.shp your_location_history.kml -oo GX_PARSE=YES

2. 先验证KML本身是否有数据

有时候可能是你导出位置历史时没选对时间范围,导致KML本身是空的。用文本编辑器打开KML文件,搜索<gx:coord>或者<coordinates>,如果能看到一串经纬度坐标,说明数据是存在的,继续往下排查。

3. 用ogrinfo确认图层是否能被识别

先运行命令查看KML里的可识别图层:

ogrinfo your_location_history.kml -oo GX_PARSE=YES

如果输出里能看到类似Tracks或者Placemarks的图层,说明数据已经被识别。如果转换还是有问题,可以指定具体图层名称转换,比如:

ogr2ogr -f "GeoJSON" output.geojson your_location_history.kml -oo GX_PARSE=YES Tracks

4. 检查GDAL版本

Mac OS 10.12上如果是通过Homebrew安装的GDAL,可能版本较旧,对GX标签支持不足。先查看版本:

ogrinfo --version

如果版本低于2.0,建议更新GDAL:

brew update && brew upgrade gdal

(如果是通过其他方式安装的GDAL,比如MacPorts,对应换成port upgrade gdal即可)

5. 排除权限问题

确保你有输出目录的写入权限,比如如果是系统目录,可能需要加sudo来运行命令,或者换成自己用户目录下的路径输出。


内容的提问来源于stack exchange,提问作者supercontra

火山引擎 最新活动