gpt4 book ai didi

r - 在 R 中使用 Leaflet 时如何在 addCircleMarkers() 中指定半径单位

转载 作者:行者123 更新时间:2023-12-03 19:54:07 25 4
gpt4 key购买 nike

我正在尝试使用在 Shiny 的应用程序中使用 R 创建的传单 map 来可视化从出发地到目的地的装运。

我想添加一个半径对应于 odist 和 的圆形标记ddist 来自一个名为 的响应式(Reactive)数据框的变量main()

下面是一个相关的快照和随附的代码:

Pic1

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com