结合内地和海外领土创建传单地图

时间:2018-11-12 15:32:47

标签: r leaflet

我想知道是否有可能像在美国那样,在传单地图上轻松地将法国本土与海外领土进行分组。 如下图所示。

理想情况下,我仍然可以使用正则坐标在地图上放置点,但这可能无法实现。我花了几个小时尝试解决这个问题,但可悲的是失败了……

我想一种解决方案是修改原始shapefile以移动所需的多边形并按比例扩展它们,但这并不是很简单(请注意,这种shapefile可能已经存在,但是如果确实存在,我没有没有使用正确的关键字)

enter image description here

有什么主意吗? 感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

使用@Will Hore Lacy Multiple leaflets in a grid提供的第一个链接,您可以使用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