Я только недавно начал использовать симпатичный и относительно новый library(sf)
. Приятно видеть, что точки и линии могут иметь координаты Z. Например:
> st_linestring(rbind(c(0,0,0),c(1,1,1)))
LINESTRINGZ(0 0 0, 1 1 1)
Однако кажется очевидным, что вычисления с использованием объектов с информацией Z проецируют все в плоскость XY:
# I wish this returned POINTZ(0.5 0.5 0.5)...
> st_centroid(st_linestring(rbind(c(0,0,0),c(1,1,1))))
POINT(0.5 0.5)
# I wish this returned 1.0...
> st_distance(st_linestring(rbind(c(0,0,0),c(1,1,1))),
st_linestring(rbind(c(2,0,2),c(0,2,2))))
[,1]
[1,] 0
Как я могу выполнять операции, используя координату Z, не прокручивая собственную?
(Я предполагаю, что либо я что-то упускаю из-за непонимания, либо библиотека настолько новая, что эти операции просто еще не реализованы.)