Создайте карту листовки с материковой страной и заморскими территориями, сгруппированными вместе - PullRequest
0 голосов
/ 12 ноября 2018

Мне было интересно, можно ли с легкостью сгруппировать материковую Францию ​​с ее заморскими территориями на листовой карте, аналогично тому, что мы часто видим в США. Что-то вроде карты ниже.

В идеале я мог бы использовать обычные координаты для размещения точек на карте, но это может быть невозможно. Я потратил несколько часов, чтобы попытаться понять это, но, к сожалению, не смог ...

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

enter image description here

Есть идеи? Спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 24 февраля 2019

Используя первую ссылку, предоставленную @Will Hore Lacy Несколько листовок в сетке , вы можете использовать htmltools для создания желаемого вида.

library(htmltool)
library(leaflet)

Сначала создайте всекарты, предоставляя разные высоты для каждой карты.

# main map
# indicate height (should be related to the number of other maps : 800px = 4 maps * 200px)
metropole <- leaflet(height = "800px") %>% 
  addTiles() %>% 
  setView(lng = 2.966, lat = 46.86, zoom = 6) %>% 
  addControl("Métropole", position = "bottomleft")

# smaller maps :
# height is identical (200px)
reunion <- leaflet(height = "200px") %>% 
  addTiles() %>% 
  setView(lng = 55.53251, lat = -21.133165, zoom = 8) %>% 
  addControl("La Réunion", position = "bottomleft")

martinique <- leaflet(height = "200px") %>% 
  addTiles() %>% 
  setView(lng = -61.01893, lat = 14.654532, zoom = 8) %>% 
  addControl("Martinique", position = "bottomleft")

guadeloupe <- leaflet(height = "200px") %>% 
  addTiles() %>% 
  setView(lng = -61.53982, lat = 16.197587, zoom = 8) %>% 
  addControl("Guadeloupe", position = "bottomleft")

guyane <- leaflet(height = "200px") %>% 
  addTiles() %>% 
  setView(lng = -53.23917, lat = 3.922325, zoom = 6) %>% 
  addControl("Guyane", position = "bottomleft")

Создайте сетку HTML.

leaflet_grid <- 
  tagList(tags$table(width = "100%", border = "1px",
                     tags$tr(
                       tags$td(reunion, width = "30%"), # reduce first column width
                       tags$td(metropole, rowspan = 4)  # span across the four other maps
                     ),
                     tags$tr(
                       tags$td(martinique)
                       ),
                     tags$tr(
                       tags$td(guadeloupe)
                     ),
                     tags$tr(
                       tags$td(guyane)
                     )
  )
          )

browsable(leaflet_grid)

Это должно дать что-то вроде этого:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...