2

我在使用 R 中的 areaPolygon 函数时遇到问题。有时它似乎会产生正确的结果,而有时结果似乎相差了几个数量级。

例如,我有一个包含这些点的多边形:

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 m^2。

我期待在 1000 m^2 范围内有更多的东西。

奇怪的是,这似乎对我正在计算的大约一半的单元格工作得相当好,但不是另一半。

一个类似的 StackOverflow 问题指出了奇怪的小值,因为这些点的顺序不正确。但是,当我绘制时,例如

plot(data, type="l")

多边形似乎正确绘制。

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

4

1 回答 1

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

舍入起作用的想法似乎牵强。

于 2019-05-26T16:29:23.533 回答