我花了一些时间来弄清楚这个问题的答案。从Google搜索中并不能立即看出来,因此认为在此处发布答案可能会很有用。还有一个关于非连续多边形的问题。
即时简便答案:使用命令:
centroids <- getSpPPolygonsLabptSlots(polys)
(可以在R,sp中的总体空间包的SpatialPolygonsDataFrame R数据类的类描述中找到它)
这似乎与
cents <- SpatialPointsDataFrame(coords=cents, data=sids@data, proj4string=CRS("+proj=longlat +ellps=clrk66"))
在以下代码中,该代码应该在任何R安装中都可以复制(尝试!)
#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")
美分(蓝色)和质心(红色)是相同的质心(在运行代码后应显示该图):
到现在为止还挺好。但是,当您在QGIS中计算多边形质心(菜单:“矢量” |“几何” |“多边形质心”)时,非连续多边形的结果会略有不同:
所以这个问题是三件事:
- 快速简便的答案
- 使用R来计算非连续多边形的质心的人的警告
- 有关在R中应如何正确处理多部分(非连续)多边形的问题
我需要知道如何引用上面解释的函数质心。谢谢
—
圣地亚哥·费尔南德斯