您好我正在尝试学习如何使用闪亮的传单地图,我使用了这个例子:
http://glimmer.rstudio.com/jcheng/leaflet-demo/
以下是代码存储库:
https://github.com/jcheng5/leaflet-shiny/blob/master/inst/example/
我想通过addCircle
替换addMarker
函数来用标记替换圈子。
实际功能是: (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
随机“行事”?
如何在情节上一次绘制几个标记?
循环波纹管工作但理想情况下我不想手动循环,如果可能的话。
for(i in 1:nrow(cities)){
map$addMarker(
cities$Lat[i],
cities$Long[i],
i
)
}
谢谢
答案 0 :(得分:2)
我遇到了同样的问题,这是因为你删除了半径。通过查看函数createLeafletMap的代码,我们可以看到addCircle需要这些参数:
addCircle(lat, lng, radius, layerId = NULL, options=list(), eachOptions=list())
它确实需要半径。解决你的问题只需写:
map$addMarker(
cities$Lat,
cities$Long,
100,
row.names(cities)
)