2

我是 RgoogleMaps 包的新手,我正在尝试在我的地图中包含具有精确半径的圆圈。这是我当前的代码:

library(RgoogleMaps)
data <- read.csv("test.csv", header = TRUE, sep = ",", quote = "\"",
                  dec = ".", fill = TRUE, comment.char = "")

lat <- data$Latitude
lon <- data$Longitude

PlotOnStaticMap(lat = lat, lon = lon, zoom = 10, maptype ="satellite",
                size = c(480, 480), cex = 0.2, pch = 19, col = "red", FUN = points, add = F)

这里对于每个“坐标点”,即地图上的每个点都来自具有纬度和经度信息的“数据”数据框,我想以“坐标点”为中心绘制一个半径为 2 英里的圆。因此,如果我在数据框中有 10 行包含纬度和经度信息,我想绘制 10 个圆,每行为中心,半径为 2 英里。是否有可能做到这一点?RgoogleMaps 包中是否有此功能?如果没有,是否有任何其他可用的软件包可以做到这一点?

我想使用左下角和右上角的纬度和经度($BBOX$ll 和 $BBOX$ur)并将此信息与地图的大小 $size 480 480 相结合,以确定 cex 值应该是多少2英里的一个点。但是,如果有一种更简单的方法,我将非常感激。

谢谢你。

所以

4

1 回答 1

0

一种可能性(只要比例尺使得绘图中的圆圈与表面上的圆圈足够接近(不会因投影到平面而扭曲太多))是使用my.symbolsTeachingDemos 包中的函数绘制圆圈。仍然使用 RgoogleMaps 包下载并绘制地图,然后根据地图区域的纬度或经度计算 2/10 英里的距离。然后,您可以my.symbolsxsizeorysize参数设置为适当的经度或纬度(您可以使用带有大量边的 ms.polygon 函数来近似一个圆)。

于 2014-07-05T17:31:16.573 回答