如何从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
有办法吗?或者我做错了什么?
答案 0 :(得分:12)
我不确定我是否真的理解这个问题,尽管我已经多次阅读了这个问题。但是下面的代码似乎对我有用,因为它可以很容易地与一个简单的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)
```