Saya telah menghabiskan sedikit waktu mencari tahu jawaban untuk pertanyaan ini. Ini tidak segera terlihat dari pencarian Google , jadi mungkin bermanfaat untuk mengirim jawabannya di sini. Ada juga pertanyaan tambahan tentang poligon yang tidak berdekatan .
Jawaban mudah instan: gunakan perintah:
centroids <- getSpPPolygonsLabptSlots(polys)
(Ini ditemukan dalam deskripsi kelas dari kelas data SpatialPolygonsDataFrame R untuk paket spasial menyeluruh di R, sp )
Ini tampaknya melakukan hal yang persis sama dengan
cents <- SpatialPointsDataFrame(coords=cents, data=sids@data, proj4string=CRS("+proj=longlat +ellps=clrk66"))
dalam kode berikut, yang seharusnya dapat direplikasi pada instalasi R apa saja (coba!)
#Rcentroids
install.packages("GISTools")
library(GISTools)
sids <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
proj4string=CRS("+proj=longlat +ellps=clrk66"))
class(sids)
plot(sids)
writeSpatialShape(sids, "sids")
cents <- coordinates(sids)
cents <- SpatialPointsDataFrame(coords=cents, data=sids@data,
proj4string=CRS("+proj=longlat +ellps=clrk66"))
points(cents, col = "Blue")
writeSpatialShape(cents, "cents")
centroids <- getSpPPolygonsLabptSlots(sids)
points(centroids, pch = 3, col = "Red")
Di mana sen (biru) dan centroid (merah) adalah centroid identik (plot ini seharusnya muncul setelah Anda menjalankan kode):
Sejauh ini baik. Tetapi ketika Anda menghitung poligon centroid di QGIS (menu: Vektor | Geometri | Poligon Centroid), ada hasil yang sedikit berbeda untuk poligon yang tidak berdekatan:
Jadi pertanyaan ini adalah 3 hal:
- Jawaban yang cepat dan mudah
- Peringatan untuk orang yang menggunakan R untuk menghitung centroid untuk poligon yang tidak berdekatan
- Sebuah pertanyaan tentang bagaimana hal itu harus dilakukan dalam R untuk memperhitungkan poligon multi-bagian (tidak berdampingan) dengan benar