複数のジオメトリ 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 Earth で、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 Earth の必要性を否定することですが、もちろん、何をしてもうまくいきます。
付録:
これを解析するために XML を使用することを検討しています。データはタグ内に構造化されているようです。私はしなければならない:
require(XML)
d = xmlParse("shackleton.kml")
doc = xpathSApply(d, "//Placemark")
しかし、これは何の役にも立たないようです。