Ну, предупреждение довольно ясное, буферизация не работает для непроецированных данных.
#> Warning in st_buffer.sfc(test_coords, dist = 2): st_buffer does not correctly
#> buffer longitude/latitude data
#> dist is assumed to be in decimal degrees (arc_degrees).
Ваши данные показывают proj4string: "+proj=longlat +datum=WGS84 +no_defs"
, поэтому вы либо проецируете их, либо меняете подход. Кроме того, вы пытались проецировать lonlat (-180,180 градусов) на 10000, что означает 10000 градусов. Так что это бессмысленный буфер, буферизация работает на тех же единицах проекции.
Здесь у вас есть два подхода без проецирования:
- Буферизация на 2 градуса, она работает, но буфер довольно странный.
- Другой вариант - просто построить два раза одну и ту же точку, но не передавать ее в
POLYGON
, как это делает буфер. Просто нанесите его во второй раз с большим cex
.
library(sf)
#> Warning: package 'sf' was built under R version 3.5.3
#> Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(mapview)
#> Warning: package 'mapview' was built under R version 3.5.3
data("breweries")
test_coords <- st_geometry(breweries[1:2,])
st_crs(test_coords)
#> Coordinate Reference System:
#> EPSG: 4326
#> proj4string: "+proj=longlat +datum=WGS84 +no_defs"
buff_test_coords <- st_buffer(test_coords, dist = 2)
#> Warning in st_buffer.sfc(test_coords, dist = 2): st_buffer does not correctly
#> buffer longitude/latitude data
#> dist is assumed to be in decimal degrees (arc_degrees).
#Buffering non-projected coords
mapview(test_coords) + mapview(buff_test_coords)
#Plotting the same points with a bigger cex
mapview(test_coords) + mapview(test_coords, cex=100, col.regions ="red")
Создано в 2020-03-28 пакетом Представ (v0.3.0)