在传单地图上绘制几个标记

时间:2014-02-10 10:41:42

标签: r leaflet shiny

您好我正在尝试学习如何使用闪亮的传单地图,我使用了这个例子:

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
    )
}

谢谢

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,这是因为你删除了半径。通过查看函数createLeafletMap的代码,我们可以看到addCircle需要这些参数:

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

它确实需要半径。解决你的问题只需写:

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