0

我正在尝试找到一种使用 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但它也没有透露太多信息。

4

1 回答 1

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是一个数据框。

当你运行这条线

coordinates(meuse)<-~x+y

它使用 x 和 y 变量(列)构造一个 SpatialPolygonsDataFrame 对象,该对象具有坐标(来自您的 x 和 y)以及各种金属和土地特征的属性。

将曲面(我们生活在一个大球上)投影到平面上并非易事,因此需要进行一些计算才能实现这一点。这是你告诉 R 你的数据是什么投影的地方,因此这条线

proj4string(meuse) <- CRS('+init=epsg:28992')
于 2013-11-10T08:29:27.953 回答