我正在构建一个工作流,用于将多几何 KML 文件读入 R。这是我的工作地图,带有点和路径几何。(可重现的)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")
但这似乎没有任何用处。