从这个问题跟进:gCentroid 将质心向点集中移动 https://stackoverflow.com/questions/49736565/gcentroid-shifting-centroid-towards-concentration-of-points,但形状更棘手。
使用这个空间点数据框 https://pastebin.com/MY1uWNUc我使用计算中心gCentroid
,但它将它放置在形状之外。
# c. = [dput'd data from link]
poly <- SpatialPolygons(Srl = list(Polygons( srl = list(Polygon(coords = coordinates(c.))), ID = 1)))
plot(poly)
axis(1)
axis(2)
points(rgeos::gCentroid(poly))
如何返回落下的中心点的坐标inside指定的形状?
正如对此类形状的评论中所指出的,中心位于边界之外。我认为我正在寻找的东西更好地描述为“质心”,即点within距离边界最远的多边形。
polylabelR::poi https://search.r-project.org/CRAN/refmans/polylabelr/html/poi.html(多边形的不可到达极点(视觉中心))似乎可以解决问题。相关做法:https://blog.mapbox.com/a-new-algorithm-for-finding-a-visual-center-of-a-polygon-7c77e6492fbc https://blog.mapbox.com/a-new-algorithm-for-finding-a-visual-center-of-a-polygon-7c77e6492fbc
poly <- SpatialPolygons(Srl = list(Polygons( srl = list(Polygon(coords = coordinates(c.))), ID = 1)))
plot(poly)
axis(1)
axis(2)
points(rgeos::gCentroid(c.))
p <- polylabelr::poi(xx$long, xx$lat, precision = 0.01)
points(p)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)