我正在尝试使用R在Google地图上找到一种简单的方法来绘制点(给定纬度和经度)。我一直关注http://diggdata.in/post/51396519384/plotting-geo-spatial-data-on-google-maps-in-r ...更具体地说,第二种方法已经在那里解释过,使用“meuse”数据集。
但是,我无法理解代码。究竟是什么 -
coordinates(meuse)<-~x+y # convert to SPDF
proj4string(meuse) <- CRS('+init=epsg:28992')
办?
我检查了http://rwiki.sciviews.org/doku.php?id=tips:spatial-data:change_crs,但它也没有发光。
答案 0 :(得分:2)
这是怎么回事:
library(sp)
data(meuse)
str(meuse)
> str(meuse)
'data.frame': 155 obs. of 14 variables:
$ x : num 181072 181025 181165 181298 181307 ...
$ y : num 333611 333558 333537 333484 333330 ...
$ cadmium: num 11.7 8.6 6.5 2.6 2.8 3 3.2 2.8 2.4 1.6 ...
$ copper : num 85 81 68 81 48 61 31 29 37 24 ...
meuse
是一个data.frame。
当您运行此行时
coordinates(meuse)<-~x+y
它使用x和y变量(列)构造一个SpatialPolygonsDataFrame对象,该对象具有坐标(来自你的x和y)以及各种金属和陆地特征的属性。
将曲面(我们生活在一个大球上)投射到一个平面上并非易事,因此需要进行一些计算才能实现这一目标。这是你告诉R你的数据是什么投影的地方,因此就行了
proj4string(meuse) <- CRS('+init=epsg:28992')