2016-08-11 14 views
1

リーフレットを使用して一部のプロット関数をカスタマイズしたいと考えています。私の問題は、関数内でリーフレットを使用するとマップがhtmlに表示されないことです。 anybodは解決策を知っていますか?ファンクションでリーフレットを呼び出すとマップが表示されない

はここで一例であり、私が試したもの:これらのプロットの

Save this as .Rmd 
```{r, c1, echo = FALSE} 
map <- function() { 
    library(leaflet) 
    m <- leaflet(width = "100%") %>% 
    addTiles(group = "OSM") %>% 
    addProviderTiles("Stamen.TonerLite") %>% 
    addLayersControl(
     baseGroups = c("OSM", "Stamen.TonerLite")) 
    return(m) 
} 

map_poa <- function() { 
    m <- map() 
    m %>% addCircleMarkers(lat = c(47, 47.5), 
         lng = c(8, 8.5), 
         stroke = FALSE, 
         radius = 10, 
         fillOpacity = 0.8, 
         clusterOptions = markerClusterOptions()) 
    print(m) 
    return(m) 
} 
``` 

一つは、何らかの形で動作するはずです。その後

Add this chunk to the above .Rmd 
```{r, c3, echo = FALSE} 
m <- map() 
m %>% addCircleMarkers(lat = c(47, 47.5), 
         lng = c(8, 8.5), 
         stroke = FALSE, 
         radius = 10, 
         fillOpacity = 0.8, 
         clusterOptions = markerClusterOptions()) 
print(m) 
``` 
+0

あなたはお尻が必要です関数内でリターンを使用するときはパイプではなく( '%>%')、igment( '< - ')を使用します。下の私の答えを見てください。 – TimSalabim

答えて

3

あなたはmap_poa()

map_poa <- function() { 
    m <- map() 
    # m <- m %>% addCircleMarkers(# also ok 
    m <- addCircleMarkers(map = m, 
         lat = c(47, 47.5), 
         lng = c(8, 8.5), 
         stroke = FALSE, 
         radius = 10, 
         fillOpacity = 0.8, 
         clusterOptions = markerClusterOptions()) 

    return(m) 
} 

にマップmからaddCircleMarkers呼び出しを割り当てる必要がありマーカーます:私が試した:

Add this chunk to the above .Rmd 
```{r, c2, echo = FALSE} 
# map() # Works 
map_poa() # map without content 
# print(map_poa()) # Does not work at all (Nothing shown) 
# plot(map_poa()) # Does not work (Throws error) 
``` 

機能がなければ、すべてが表示されます呼び出し時に表示されるmap_poa()

関連する問題