我正在尝试使用在闪亮的应用程序中使用R创建的传单地图来显示从始发地到目的地的货件。
我想添加一个半径对应于 odist 和 ddist 变量的圆圈标记,这些变量来自一个名为 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个单位似乎是任意的(cirlce小于radius = main()$ddist = 125
的较大单位,但是当我放大和缩小时,两个圆都放大和缩小)。我希望能够将我的圆圈标记的半径设置为以英里为单位的固定半径,但是我无法弄清楚如何这样做。非常感谢任何帮助!
答案 0 :(得分:3)
如果您使用addCircles
代替addCircleMarkers
,则您的圈子将会有radius
(以米为单位)。以下是使用{strong> mapview 的可重现示例,该示例使用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
如果你放大,你会看到最初较小的红色圆圈会变得比 mapview
中使用的标准蓝色圆圈标记更大答案 1 :(得分:0)
记住地图投影很重要。
这也取决于您在 Leaflet 中使用的投影,最好使用 Leaflet 的测量工具进行检查,或者您是否知道位置。查看我推荐的预测
crsDF <- rgdal::make_EPSG()
View(crsDF)
就我而言,我在智利(一个狭长的国家),我在某些地方使用此投影:
CRS 9155 =
"+proj=utm +zone=19 +south +ellps=GRS80 +units=m +no_defs +type=crs"
你可以看到我使用的单位是米
在这里,我留下了对我的国家的一些预测的图像。
View(crsDF)
您可以在以下位置找到更多信息:
问候