web-dev-qa-db-ja.com

Rの光沢のあるリーフレットマップにポリゴンを追加する

グローバル管理領域 からポリゴンを追加して、クリック可能にするにはどうすればよいですか。

私が試した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でどのように機能するのか混乱しています。

https://ropensci.org/blog/2013/10/23/style-geojson-polygon/ またはこれと同様にgeoJSONに変換してみました SO質問 、しかしやって

  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

それを行う方法はありますか?または私は何が間違っているのですか?

14
romants

質問を数回読みましたが、問題を本当に理解しているかどうかはわかりません。ただし、以下のコードは、各admの名前を表示するポップアップのように、単純な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)
```
13
maRtin