我曾经通过在 R 中绘制 kml 坐标并在顶部覆盖物种丰度数据来制作一张很酷的地图。当我第一次编写代码时,我使用以下代码来调用我的坐标列表:
spa<-getKMLcoordinates('Perimeter_Track.kml', ignoreAltitude=TRUE)
summary(spa)
返回:
Length Class Mode
[1,] 128 -none- numeric
[2,] 242 -none- numeric
[3,] 34 -none- numeric
[4,] 126 -none- numeric
(GPS 坐标是以 4 个块测量的周边轨道,因此每个列表都是这些块之一): 现在,当我再次运行代码时,summary(spa)
返回:
Length Class Mode
[1,] 2 -none- list
[2,] 2 -none- list
[3,] 2 -none- list
[4,] 2 -none- list
如果我使用 将 spa 转换为数据帧as.data.frame()
,当我尝试使用rbind
将 4 个块连接成一个大轨道时,我仍然会收到此错误:
Error in match.names(clabs, names(xi)) :
names do not match previous names
R 似乎没有读取 kml 文件,或者只读取其中的一部分。
列表(或数据框)spa 是
c..157.80736808..21.4323436..20.324951171875.
1 -157.80737
2 21.43234
3 20.32495
c..157.80738216..21.43231443..19.36376953125.
1 -157.80738
2 21.43231
3 19.36377
c..157.80533605..21.43536092..15.9990234375. c..157.8053208..21.43541138..15.9990234375.
1 -157.80534 -157.80532
2 21.43536 21.43541
3 15.99902 15.99902
c..157.80998348..21.43706806..15.9990234375.
1 -157.80998
2 21.43707
3 15.99902
c..157.80997007..21.43711106..17.441162109375.
1 -157.80997
2 21.43711
3 17.44116
c..157.81074733..21.43717535..13.5958251953125.
1 -157.81075
2 21.43718
3 13.59583
c..157.81071673..21.43718331..14.076416015625.
1 -157.81072
2 21.43718
3 14.07642
这是 maptools 或我的代码的错误吗?据我所知,这是将 kml 坐标转换为 R 可以使用的坐标的最简单方法。您的帮助将不胜感激。
该文件的链接在这里:https ://www.dropbox.com/s/y8elanjnst6438v/Perimeter_Track.kml