2014-02-10 57 views
1

嗨,我想學習如何使用上閃亮的單張地圖上的標記,我使用的例子:情節severals的單張地圖

http://glimmer.rstudio.com/jcheng/leaflet-demo/

這裏是代碼庫:

https://github.com/jcheng5/leaflet-shiny/blob/master/inst/example/

我想用addMarker替換addCircle函數來替換標記。

的實際功能是: (線Server.R 98)

map$addCircle(
    cities$Lat, 
    cities$Long, 
    sqrt(cities[[popCol()]]) * radiusFactor/max(5, input$map_zoom)^2, 
    row.names(cities), 
    list(
    weight=1.2, 
    fill=TRUE, 
    color='#4A9' 
) 
) 

我只是取代了它:

map$addMarker(
    cities$Lat, 
    cities$Long, 
    row.names(cities) 
) 

但只上繪製的第一個城市標誌數據幀。如果您在地圖上隨機移動和縮放,則可能會出現其他一些標記...

爲什麼addCircle爲每個城市繪製一個圓圈並且addMarker表現「隨機」?

如何在plot上一次繪製多個標記?
循環波紋管工作,但理想情況下,我不想手動循環,如果可能的話。

for(i in 1:nrow(cities)){ 
    map$addMarker(
     cities$Lat[i], 
     cities$Long[i], 
     i 
    ) 
} 

謝謝

回答

2

我有同樣的問題,那是因爲你刪除半徑。通過查看功能createLeafletMap的代碼,我們可以看到,addCircle需要這些參數:

addCircle(lat, lng, radius, layerId = NULL, options=list(), eachOptions=list()) 

它真正需要的半徑。解決你的問題只需寫:

map$addMarker(
    cities$Lat, 
    cities$Long, 
    100, 
    row.names(cities) 
)