Задача построения (простых) полигонов с буклетом в r

Я хотел бы использовать брошюру, чтобы помочь мне построить многоугольники тепловой карты по Великобритании, но листовка ()%>% addPolygons (...) дает мне странный результат даже для очень простого случая.

Я использую следующий код для построения простого треугольника в листовке, а затем ggplot2. У ggplot2 нет проблем, но в листовке иногда просто отображается прямая линия вместо треугольника. Код буклета:

l <- leaflet()
  shapes <- unique(df$shape)
  for (shape in shapes) {
  d <- df[df$shape == shape, , drop = FALSE]
  l <- l %>% addPolygons(lat = d$lat, lng = d$lng,noClip=TRUE)
}
l

Код geom_polygon: qplot (lng, lat, data = df, geom = "polygon", group = shape)

Если я использую этот ввод, то получаю разумный вывод от обоих пакетов:

df <- data.frame(lat = c(1, 2, 3), lng = c(2, 3, 1), shape = c("triangle", "triangle", "triangle"))

Однако использование даже простой модификации приводит к простой горизонтальной линии в листовке (но правильному треугольнику в ggplot2):

df <- data.frame(lat = c(100, 200, 300), lng = c(200, 300, 100), shape = c("triangle", "triangle", "triangle"))

Для меня это звучит так, как будто мне не хватает параметра или чего-то в этом роде, но я всю жизнь не могу понять, что происходит. Любая помощь приветствуется.

Спасибо Том


person TomFromWales    schedule 08.02.2017    source источник


Ответы (1)


По всей видимости, листовка касается только долготы / широты, даже если базовой карты нет. Начиная с шейп-файла (с восточными и северными направлениями), следующие данные будут считаны в шейп-файле, преобразованы в longlat и затем успешно построены полигоны с помощью листовки:

shapefile <- readOGR("filepath_here", "shapefile_here")
shapeData <- spTransform(shapefile, CRS("+proj=longlat +datum=WGS84 +no_defs"))

leaflet()  %>% 
  addPolygons(data=subset(shapeData, POSTAREA %in% c('SW')),weight=2)
person TomFromWales    schedule 08.02.2017