【发布时间】:2013-10-30 03:07:13
【问题描述】:
我正在构建一个工作流,用于将多几何 KML 文件读入 R。这是我的 working map,包含点和路径几何。 (可重现的)R 脚本是:
library(rgdal)
setwd( {SPECIFY A FOLDER} )
download.file("http://www.scribblemaps.com/maps/kml/shackleton.kml", "file.kml")
(lyr = ogrListLayers("file.kml"))
map = readOGR ("file.kml", layer=lyr, verbose = TRUE, drop_unsupported_fields=T, dropNULLGeometries=T)
失败:
Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv) :
Cannot open layer
任何想法如何解决这个问题?
我已经设法通过创建一个仅包含路径条目的新 KML 来获取路径数据:在 Google 地球中,单击 kml 对象列表中的路径条目,选择“复制”,粘贴到文本编辑器并另存为KML。这在 R 中打开:
(lyr = ogrListLayers("path.kml"))
pathkml = readOGR ("path.kml", layer=lyr, verbose = TRUE, drop_unsupported_fields=T, dropNULLGeometries=T)
coordinates(pathkml)
但我还没有实现点数据的工作流程,其中包括点标签和注释。更可取的解决方案是阅读原始 KML 并否定对 Google 地球的需求,但当然可以。非常感谢您的帮助。
附录:
我现在正在研究使用 XML 来解析它。数据似乎在标签内结构化。我必须:
require(XML)
d = xmlParse("shackleton.kml")
doc = xpathSApply(d, "//Placemark")
但这似乎没有任何用处。
【问题讨论】:
-
不知道答案但可以报告Mac上的错误解释略有不同:
Multiple incompatible geometries: 1:2。此外,帮助页面的第二句话说:“它只能处理具有一致几何特征的图层” -
感谢 DWin。我也发帖到R-Sig-Geo,以防有人可以提供建议。
标签: r xml-parsing geospatial kml