st_geometry 似乎对浮点数进行舍入

st_geometry appears to round floating point numbers

我注意到在使用 st_transform 之后,如果我在 RStudio 中使用 View() 命令查看坐标,我会看到小数位,但是 st_geometry 等函数似乎 return 四舍五入的整数值。我担心如果 sf 是四舍五入的数字,我的计算会不正确。

library(sf)

x <- tibble(name='location 1',lon=21.0122,lat=52.2297)

pt <- x %>% st_as_sf(coords=c('lon','lat'),crs=4326) %>%
  st_transform(3035)

如果我打印第一个坐标的值,结果没有小数位

st_geometry(pt)[[1]][1]

[1] 5070109

但是如果我在RStudio中查看sf对象,它显然是一个浮点数。

pt %>% View
name geometry
location 1 c(5070108.64864491, 3292361.60097363)

四舍五入仅在打印结果时发生。例如:

> sprintf("%.15f", st_geometry(pt)[[1]][1])
[1] "5070108.648660272359848"

> options(digits = 15)
> st_geometry(pt)[[1]][1]
[1] 5070108.64866027

查看 ?options 中的参数 digits 了解更多详情。