Ну, это скорее предупреждение, чем ошибка. Но в целом вы должны выполнять Дугласа-Пекера в проекционной системе координат - потому что она использует расстояние в качестве буфера, тогда как фактический размер единицы долготы зависит от широты. Обратите внимание, что единица измерения, используемая допуском st_simplify, всегда будет такой же, как и единицы карты.
Вот воспроизводимый пример:
library(sf)
library(maptools)
states = st_as_sf(maps::map("state", plot = FALSE, fill = TRUE))
states_simple = st_simplify(states)
##Warning message:
## In st_simplify.sfc(st_geometry(x), preserveTopology, dTolerance) :
## st_simplify does not correctly simplify longitude/latitude data, dTolerance needs to be in decimal degrees
Но если мы сначала преобразуем в спроецированную систему координат, тогда нет предупреждения:
states = st_transform(states, 54032) #azimuthal equidistant
states_simple = st_simplify(states)
Вы всегда можете go вернуться к WGS84 lat-long после упрощения
states = st_transform(states, 4326)