我在構建將多個幾何KML文件讀入R的工作流。這是我的working map,具有點和路徑幾何。的(可重複)R腳本是:將KML文件讀入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 Earth中,單擊kml對象列表中的路徑條目,選擇'copy',粘貼到文本編輯器並保存作爲KML。這在R打開與:
(lyr = ogrListLayers("path.kml"))
pathkml = readOGR ("path.kml", layer=lyr, verbose = TRUE, drop_unsupported_fields=T, dropNULLGeometries=T)
coordinates(pathkml)
但我還沒有達到該點的數據,其中包括點標籤和註釋的工作流。最好的解決方案會讀取原始的KML,並取消對Google地球的需求,但當然是任何作品。非常感謝您的協助。
Appendum:
我現在考慮使用XML解析這個。數據似乎在標籤內是結構化的。我必須:
require(XML)
d = xmlParse("shackleton.kml")
doc = xpathSApply(d, "//Placemark")
但這似乎沒有什麼用處。
不知道答案,但可以報告在Mac上的錯誤說明略有不同:'多個不兼容的幾何:1:2'。此外,幫助頁面的第二句說:「它只能處理具有一致幾何特徵的圖層」 –
謝謝DWin。我還發布到[R-Sig-Geo](http://r-sig-geo.2731867.n2.nabble.com/Reading-multiple-layer-geometry-KML-into-R-td7584922.html)如果有人可以建議。 – geotheory