'How to draw circles of defined radius around multiple points and export to kml file
I have a set of points saved with their respective latitude and longitude in a data frame like this:
points = data.frame(point_id = 1:3,
lat = c("51.7505","51.7502","51.6045"),
long = c("4.8456","4.8453","4.8012")
)
My goal is to create circular polygons with the same defined radius (in this case 200m) around each of these points and export them as a KML file. How would I do that?
Solution 1:[1]
Use st_buffer
with a metric projection (you have to st_transform
the crs first).
library(sf)
points <- st_as_sf(points, coords = c("lat", "long"), crs = 4326) %>%
st_transform(20539) %>%
st_buffer(200)
Then use st_write
:
st_write(points , "points.kml", driver = "kml", delete_dsn = TRUE)
Solution 2:[2]
points_buffer <- points %>%
# Transform data.frame in Simple Feature object
st_as_sf(coords = c('lat', 'long'), dim = "XY") %>%
# Determine the coordinate system
st_set_crs("EPSG:4326") %>%
# Tranform geographical coordinates to cartesian
# so we can choose the size of the buffer in meters
st_transform( crs = 27700) %>%
# Calculate buffer
st_buffer(dist = 200) %>%
# Return to WGS 84 geographical coordinate system to export in KML
st_transform( crs = 4326)
# Export results
st_write(points_buffer, "points_buffer.kml", driver = "kml", delete_dsn = TRUE)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Lucca Nielsen |