将多边形添加到 R 闪亮的传单地图
Add Polygons to R shiny leaflet map
如何从 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/ or this 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
有办法吗?或者我做错了什么?
我不确定我是否真的理解了这个问题,虽然我通读了几遍这个问题。但是下面的代码似乎对我有用,因为它可以很容易地与一个简单的 onClick
事件结合使用,例如显示每个管理员名称的弹出窗口。单位:
---
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)
```
如何从 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/ or this 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
有办法吗?或者我做错了什么?
我不确定我是否真的理解了这个问题,虽然我通读了几遍这个问题。但是下面的代码似乎对我有用,因为它可以很容易地与一个简单的 onClick
事件结合使用,例如显示每个管理员名称的弹出窗口。单位:
---
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)
```