2017-11-16 24 views
0

私はマップ上の点の周りにバッファをプロットしようとしていましたが、私がそうしたときにバッファがこのような正しい場所に現れません。マップ上のある点の周りにバッファを描く-R SF

Faulty R Map

正しい場所はカリフォルニアにあります。

は、ここに私のコードです:

library(tigris) 
library(sf) 
library(tidyverse) 

projection <- 102003 

options(tigris_use_cache = TRUE) 
county_polys <- counties(class = 'sf') %>% 
    filter(STATEFP %in% c('06','41','53','04','16','32','49')) %>% 
    st_transform(projection) 

    centroids <- county_polys %>% 
    as_tibble %>% select(INTPTLON,INTPTLAT) %>% 
    mutate(
    INTPTLON = as.double(INTPTLON), 
    INTPTLAT = as.double(INTPTLAT)) %>% 
    st_as_sf(coords = c('INTPTLON','INTPTLAT'), crs = projection) 

pt <- centroids[2,] 
pt_buffer <- st_buffer(pt,150000) 


ggplot() + geom_sf(data = county_polys) + geom_sf(data = pt_buffer,color = 'red') 

答えて

1

私たちは、エラーを回避するために重心を取得するためにst_centroid機能を使用することができます。 sfオブジェクトを他のクラスに変換する必要はありません。

# This is the only thing I changed from your original code 
# Get the centroid by st_centroid 
centroids <- county_polys %>% st_centroid() 

pt <- centroids[2,] 
pt_buffer <- st_buffer(pt,150000) 

ggplot() + geom_sf(data = county_polys) + geom_sf(data = pt_buffer,color = 'red') 

enter image description here