Jadi, cara biasa kita membaca shapefile di R adalah melalui paket maptools, seperti ini:
sfdata <- readShapeSpatial("/path/to/my/shapefile.shp", proj4string=CRS("+proj=longlat"))
Namun, saya memiliki kasus penggunaan di mana saya tidak memiliki shapefile.shp tetapi saya memiliki serangkaian koordinat poligon
16.484375 59.736328125,17.4951171875 55.1220703125,24.74609375 55.0341796875,22.5927734375 61.142578125,16.484375 59.736328125
dan proyeksi yang sesuai
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
Bagaimana cara "instantiate" sfdata (yang akan menjadi "objek poligon") langsung dari data ini? (tanpa berputar-putar cara membuat shapefile dengan data ini dan kemudian membaca dari shapefile yang baru dibuat)
Untuk melengkapi jawaban Spacedman yang luar biasa untuk kasus di mana data Anda akan mengandung banyak poligon, berikut adalah beberapa kode menggunakan
dplyr
:Hanya untuk bersenang-senang, Anda dapat membandingkan dengan plot yang diperoleh dengan
ggplot2
menggunakan frame data awal:Perhatikan bahwa kode di atas mengasumsikan bahwa Anda hanya memiliki satu polyogn per id. Jika beberapa id telah memisahkan poligon, saya kira kita harus menambahkan kolom lain dalam dataset, pertama
group_by
- tama sub-id, kemudian gunakangroup_by(upper-id)
alih-alihrowwise
Kode yang sama menggunakan
purrr::map
fungsi:sumber