Использование st_geometry<-
.
Получить исходную геометрию (только для проверки):
st_geometry(nc[nc$NAME == "Dare", ])
# Geometry set for 1 feature
# geometry type: POINT
# dimension: XY
# bbox: xmin: -75.80982 ymin: 35.73548 xmax: -75.80982 ymax: 35.73548
# epsg (SRID): 4267
# proj4string: +proj=longlat +datum=NAD27 +no_defs
# POINT (-75.80982 35.73548)
Заменить выбранную геометрию на st_geometry<-
. Значение замены должно быть простой геометрией объекта, поэтому st_sfc(st_point(...
.
st_geometry(nc[nc$NAME == "Dare", ]) <- st_sfc(st_point(c(-80, 40)))
# check again
st_geometry(nc[nc$NAME == "Dare", ])
# Geometry set for 1 feature
# geometry type: POINT
# dimension: XY
# bbox: xmin: -80 ymin: 40 xmax: -80 ymax: 40
# epsg (SRID): 4267
# proj4string: +proj=longlat +datum=NAD27 +no_defs
# POINT (-80 40)
Примечание:
В обсуждении в Twitter, опубликованном @ radek , автором пакета sf
, @Edzer Pebesma, комментируется, что ограничивающая рамка исходной геометрии не обновляется.
Оригинальная ограничительная рамка:
st_bbox(nc)
# xmin ymin xmax ymax
# -84.05976 34.07663 -75.80982 36.49101
Заменить выбранную геометрию координатами за пределами исходного ограничивающего прямоугольника, здесь x
меньше xmin
и y
больше ymax
:
st_geometry(nc[nc$NAME == "Dare", ]) <- st_sfc(st_point(c(-90, 40)))
bbox
объекта не обновляется:
st_bbox(nc)
# xmin ymin xmax ymax
# -84.05976 34.07663 -75.80982 36.49101