我想创建一个地图,我可以交互式地测量2点之间的距离。幸运的是,leaflet.extras
正是我所需要的,但是,我努力让它以米(或公里)而非脚来产生输出。
考虑以下代码:
library(leaflet)
library(leaflet.extras)
leaflet() %>%
addTiles() %>%
addDrawToolbar(
editOptions=editToolbarOptions(selectedPathOptions=selectedPathOptions())
)
然而,this示例(第3块)实际上是相同的代码来创建相同的测量工具(折线),除了它在KM中工作,而我的示例在脚中工作。
如果你有任何提示可以帮助我切换到米而不是脚,我会非常感激。
答案 0 :(得分:2)
drawPolylineOptions
功能不允许设置选项feet=FALSE
因此,我建议修改drawPolylineOptions
如下:
library(leaflet)
library(leaflet.extras)
mydrawPolylineOptions <- function (allowIntersection = TRUE,
drawError = list(color = "#b00b00", timeout = 2500),
guidelineDistance = 20, metric = TRUE, feet = FALSE, zIndexOffset = 2000,
shapeOptions = drawShapeOptions(fill = FALSE), repeatMode = FALSE) {
leaflet::filterNULL(list(allowIntersection = allowIntersection,
drawError = drawError, guidelineDistance = guidelineDistance,
metric = metric, feet = feet, zIndexOffset = zIndexOffset,
shapeOptions = shapeOptions, repeatMode = repeatMode)) }
leaflet() %>% setView(10.975342,45.421588,9) %>%
addTiles() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik) %>%
addDrawToolbar(
polylineOptions = mydrawPolylineOptions(metric=TRUE, feet=FALSE),
editOptions=editToolbarOptions(selectedPathOptions=selectedPathOptions())
)
否则,使用addMeasures
,您可以为地图添加一个有用的工具来测量距离(请参见地图右上角的图标)。
可以通过primaryLengthUnit
选项指定用于显示长度结果的单位。
leaflet() %>% setView(10.975342,45.421588,9) %>%
addTiles() %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addDrawToolbar(
editOptions=editToolbarOptions(selectedPathOptions=selectedPathOptions())
) %>%
addMeasure(primaryLengthUnit="kilometers", secondaryLengthUnit="kilometers")