r - построить полигоны в списке информационных фреймов с листовкой - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть список с 88 полигонами, где каждый из них представляет собой просто фрейм данных с столбцом lat и длинным столбцом, есть ли простой способ построить этот полигон в листовке?Например, mi данные в формате переменной example, показанном здесь

df1 <- data.frame(lon=c(-71.53700 -71.51676 -71.51682 -71.51524 -71.53921 -71.53700), lat=c(-32.94082, -32.93327, -32.93325, -32.92814, -32.93408, -32.94082)) 
df2 <- data.frame(lon=c(-72.11527, -72.09601, -72.08983, -72.10905, -72.11527), lat=c(-36.61267, -36.61720, -36.60192, -36.59682, -36.61267))
example <- list(df1, df2)

1 Ответ

0 голосов
/ 26 сентября 2018

Вот пример преобразования ваших точек в полигоны через sf.Обратите внимание, что ваш первый многоугольник - это, в основном, линия, поэтому я построил только второй.

library(tidyverse)
library(sf)
library(leaflet)

df1 <- data.frame(lon=c(-71.53700 -71.51676 -71.51682 -71.51524 -71.53921 -71.53700), lat=c(-32.94082, -32.93327, -32.93325, -32.92814, -32.93408, -32.94082)) 
df2 <- data.frame(lon=c(-72.11527, -72.09601, -72.08983, -72.10905, -72.11527), lat=c(-36.61267, -36.61720, -36.60192, -36.59682, -36.61267))
example <- list(df1, df2)

polys <- example %>%
  bind_rows(.id = "df_id") %>%
  st_as_sf(coords = c("lon", "lat"), crs = 4326) %>%
  group_by(df_id) %>%
  summarise(geometry = st_combine(geometry)) %>%
  st_cast("POLYGON")

leaflet(polys[2, ]) %>%
  addPolygons()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...