使用 sp::Polygon@labpt 的意外质心计算

Unexpected centroid calculations using sp::Polygon@labpt

我最近在为一个地图项目计算质心,我注意到了一些可疑的位置。例如,日本的 labpt 输出远远超出其纬度范围。我的第一个问题是这里发生了什么?我的第二个问题是是否有一个很好的质心计算替代方案可以正确获得质心。

library(sp)
library(maps)

japan <- map_data("world",region="japan")

> max(japan$lat)
[1] 45.50952
> min(japan$lat)
[1] 24.26606

max(japan$long)
[1] 145.833
min(japan$long)
[1] 123.6789

# note 63 is calculated Latitude for Japan
sp::Polygon(japan[c("long","lat")])@labpt
[1] 130.32951  63.62904

经过一些谷歌搜索,我得出了以下结论:

library(rgeos)

rgeos::gCentroid(SpatialPoints(japan[c('long','lat')]))

SpatialPoints:
     x        y
1 135.2924 35.47393