用R geosphere包计算多边形面积

时间:2016-12-29 20:22:19

标签: r geospatial geosphere

我在使用R中的areaPolygon函数时遇到了问题。有时它似乎产生了正确的结果,有时结果看起来有点数量级。

E.g。我有一个带有这些点的多边形:

lng <- c(-51.74768, -51.74768, -51.74735, -51.74735)
lat <- c(-0.1838690, -0.1840993, -0.1840984, -0.1838682)

并将它们组合成数据帧

data <- data.frame(lng, lat)

然后我尝试获得该区域:

area <- geosphere::areaPolygon(x = data)

出来326928.8平方公尺。

我期待1000平方米范围内的更多东西。

奇怪的是,对于我正在计算的大约一半的细胞,这似乎相当不错,但不是另一半。

A similar StackOverflow question注意到奇怪的小值,因为这些点的顺序不正确。但是,当我绘制时,例如

plot(data, type="l")

多边形似乎正在正确绘制。

有人知道这里可能有什么问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

对于您的示例数据,结果如预期的那样,如注释中所述。

library(geosphere)
lng <- c(-51.74768, -51.74768, -51.74735, -51.74735)
lat <- c(-0.1838690, -0.1840993, -0.1840984, -0.1838682)
d <- cbind(lng, lat)
geosphere::areaPolygon(d)
#[1] 935.2693

四舍五入发挥作用的想法似乎牵强。