メモ:centroidを求めるときはrgeos::gCentroid()

軽くググった感じ、sp::coordinates()を使ったやり方がでてくるけど、そんなのドキュメントのどこにも書いてないからrgeos::gCentroid()を使いなさい、とある。

gis.stackexchange.com

サンプルデータ

library(sp)
library(rgeos)
library(ggplot2)

dsn <- system.file("vectors", package = "rgdal")[1]
scot_BNG <- readOGR(dsn=dsn, layer="scot_BNG")

scot_BNG_df <- fortify(scot_BNG)

p <- ggplot(scot_BNG_df, aes(long, lat, group = group)) +
  geom_polygon(colour = "grey", fill = "white") +
  coord_equal()

p

f:id:yutannihilation:20150525223349p:plain:w300

rgeos::gCentroids()

scot_BNG_points_rgeos <- gCentroid(scot_BNG, byid = TRUE) %>%
  as.data.frame  %>%
  add_rownames(var = "id") %>%
  rename(long = x, lat = y)
  
p + geom_point(aes(long, lat, group = id), data = scot_BNG_points_rgeos)

f:id:yutannihilation:20150525223519p:plain:w300