leaflet.extras: 以米为单位测量距离
leaflet.extras: measure distance in metres
我想创建一个可以交互式测量两点之间距离的地图。幸运的是,leaflet.extras
正是我所需要的,但是,我正在努力让它以 米 (或公里)而不是英尺为单位产生输出。
考虑以下代码:
library(leaflet)
library(leaflet.extras)
leaflet() %>%
addTiles() %>%
addDrawToolbar(
editOptions=editToolbarOptions(selectedPathOptions=selectedPathOptions())
)
它创建了以下地图:
但是,this 示例(块 3)实际上使用相同的代码来创建相同的测量工具(折线),只是它适用于 KM,而我的示例适用于英尺。
如果您有任何提示可以帮助我改用米而不是英尺,我将不胜感激。
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")
我想创建一个可以交互式测量两点之间距离的地图。幸运的是,leaflet.extras
正是我所需要的,但是,我正在努力让它以 米 (或公里)而不是英尺为单位产生输出。
考虑以下代码:
library(leaflet)
library(leaflet.extras)
leaflet() %>%
addTiles() %>%
addDrawToolbar(
editOptions=editToolbarOptions(selectedPathOptions=selectedPathOptions())
)
它创建了以下地图:
但是,this 示例(块 3)实际上使用相同的代码来创建相同的测量工具(折线),只是它适用于 KM,而我的示例适用于英尺。
如果您有任何提示可以帮助我改用米而不是英尺,我将不胜感激。
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")