我正在尝试使用在 Shiny 的应用程序中使用 R 创建的传单 map 来可视化从出发地到目的地的装运。
我想添加一个半径对应于 odist 和 的圆形标记ddist 来自一个名为 的响应式(Reactive)数据框的变量main()
下面是一个相关的快照和随附的代码:
output$leaflet1 <- renderLeaflet({
leaflet() %>%
addCircleMarkers(data = main(), lng = main()$Olong, lat = main()$Olat, color = 'black', fillColor = coyGreen,
radius = main()$odist, opacity = .5) %>%
addCircleMarkers(data = main(), lng = main()$Dlong, lat = main()$Dlat, color = 'black', fillColor = coyGreen,
radius = main()$ddist, opacity = .3)
})
对于上面的例子,参数
radius = main()$odist
相当于 radius = 50
.然而,这 50 个单位似乎是任意的(圆圈小于 radius = main()$ddist = 125
的大圆圈,但是当我放大和缩小时,两个圆圈都会放大和缩小)。我希望能够将我的圆形标记的半径设置为以英里为单位的固定半径,但是我无法弄清楚如何这样做。任何帮助是极大的赞赏!
最佳答案
如果您使用 addCircles
而不是 addCircleMarkers
您的圈子将保持不变 radius
(以米为单位)。这是一个使用 的可重现示例 map View 使用 addCircleMarkers
.在顶部,我们使用 addCircles
绘制相同的位置
library(mapview)
m <- mapview(breweries91) # uses addCirclemarkers so circle radius changes with zoom
m@map %>%
addCircles(data = breweries91, color = "red", radius = 100) # circle radius constant
如果放大,您会看到最初较小的红色圆圈相对于 中使用的标准蓝色圆圈标记变得更大。 map View
关于r - 在 R 中使用 Leaflet 时如何在 addCircleMarkers() 中指定半径单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38837112/