найти центр масс многоугольника - PullRequest
0 голосов
/ 26 января 2019

следует из этого вопроса: gЦентроид, смещающий центроид в сторону концентрации точек , но с более сложной формой.

Используя это SpatialPointsDataFrame Я рассчитал центр, используя 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)) 

enter image description here Как я могу вернуть координаты центральной точки, которая попадает внутрь указанной фигуры?

Редактировать: Как было отмечено в комментариях для такого рода фигур, центр выходит за границы. То, что я ищу, я думаю, лучше описать как «центр масс». enter image description here

1 Ответ

0 голосов
/ 26 января 2019

Я нашел этот пакет, который, кажется, делает свое дело. Родственный подход: 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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...