【问题标题】:Add Polygons to R shiny leaflet map将多边形添加到 R 闪亮的传单地图
【发布时间】:2015-06-11 09:54:22
【问题描述】:

如何从Global Administrative areas 添加多边形,使其可点击。

我尝试过的docs中描述的简单方法是

adm <- getData('GADM', country='UKR', level=1)
leaflet() %>% addTiles() %>% addPolygons(data=adm, weight = 3, fillColor = col)

但想象一下,我想要一张稍后会有 onClick 操作的传单地图。

基于SuperZip,我需要类似的东西

  map <- createLeafletMap(session, "map")
  session$onFlushed(once=TRUE, function() {
     map$addPolygon(...) 
  })

但是,没有 addPolygon 方法,我很困惑 SpartialPolygons 将如何工作。

我也尝试转换为geoJSON,类似于https://ropensci.org/blog/2013/10/23/style-geojson-polygon/ 或这个SO question,但是这样做

  polys <- fromJSON(<json data file>)
  map <- createLeafletMap(session, "map")
  session$onFlushed(once=TRUE, function() {
    map$geoJson(polys)
  })

给我一​​个错误

Error in func() : attempt to apply non-function

有办法吗?还是我做错了什么?

【问题讨论】:

  • 您希望稍后执行什么点击操作?简单的弹出窗口?还是更多?
  • 简单的弹出窗口可以开始

标签: r leaflet shiny shapefile


【解决方案1】:

我不确定我是否真的理解这个问题,尽管我已经通读了几次这个问题。然而,下面的代码似乎对我有用,因为它可以很容易地与一个简单的 onClick 事件结合起来,就像一个显示每个 adm 名称的弹出窗口。单位:

---
title: "Ukraine"
runtime: shiny
output: html_document
---

```{r, echo=FALSE, message=F, warning=F}
library(leaflet)
library(raster)

adm <- getData('GADM', country='UKR', level=1)

popup <- paste0("<strong>Name: </strong>", 
                        adm$NAME_1)

leaflet() %>% 
  addTiles() %>% 
  addPolygons(data=adm, weight = 2, fillColor = "yellow", popup=popup)
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2017-08-26
    相关资源
    最近更新 更多