r - 如何使用 R 中的 Leaflet 将两个坐标与一条线连接起来

我正在尝试使用 R 中的 Leaflet 包绘制一个放大器,并根据下表中的纬度和经度信息连接标记。


    | Observation | InitialLat | InitialLong | NewLat    | NewLong   |
    |-------------|------------|-------------|-----------|-----------|
    | A           | 62.469722  | 6.187194    | 51.4749   | -0.221619 |
    | B           | 48.0975    | 16.3108     | 51.4882   | -0.302621 |
    | C           | 36.84      | -2.435278   | 50.861822 | -0.083278 |
    | D           | 50.834194  | 4.298361    | 54.9756   | -1.62179  |
    | E           | 50.834194  | 4.298361    | 54.9756   | -1.62179  |
    | F           | 50.834194  | 4.298361    | 51.4882   | -0.302621 |
    | G           | 47.460427  | -0.530804   | 51.44     | -2.62021  |
    | H           | 51.5549    | -0.108436   | 53.4281   | -1.36172  |
    | I           | 51.5549    | -0.108436   | 52.9399   | -1.13258  |
    | J           | 51.5549    | -0.108436   | 51.889839 | -0.193608 |
    |             | 51.5549    | -0.108436   | 52.0544   | 1.14554   |

我想从 InitialLatInitialLong 列中的坐标给定的初始点到 NewLat 给定的终点画线> 和 NewLong 列。

这是我当前的 R 代码,它只在 map 上绘制标记。


    library(leaflet)
    map3 = leaflet(data) %>% addTiles()
    map3 %>% addMarkers(~InitialLong,~InitialLat, popup=~Observation)

最佳答案

这是使用 leaflet 包的替代方法。为了演示,我只是在你的数据中取了两个数据点。

mydf <- data.frame(Observation = c("A", "B"),
                   InitialLat = c(62.469722,48.0975),
                   InitialLong = c(6.187194, 16.3108),
                   NewLat = c(51.4749, 51.4882),
                   NewLong = c(-0.221619, -0.302621),
                   stringsAsFactors = FALSE)

我更改了 mydf 的格式并为传单创建了一个新的数据框。您可以通过多种方式 reshape 数据。

mydf2 <- data.frame(group = c("A", "B"),
                    lat = c(mydf$InitialLat, mydf$NewLat),
                    long = c(mydf$InitialLong, mydf$NewLong))

#  group      lat      long
#1     A 62.46972  6.187194
#2     B 48.09750 16.310800
#3     A 51.47490 -0.221619
#4     B 51.48820 -0.302621

library(leaflet)
library(magrittr)

leaflet()%>%
addTiles() %>%
addPolylines(data = mydf2, lng = ~long, lat = ~lat, group = ~group)

我修剪了我得到的交互式 map 。请看下面的 map 。尽管此图像中两条线相连,但它们是分开的。如果您运行代码并放大,您会看到两条线是分开的。

https://stackoverflow.com/questions/48129899/

相关文章:

jenkins - 在领域中使用唯一凭据 - Jenkins 本地实例

tensorflow - 将 Keras 与 TensorFlow 后端一起使用时,如何禁用 cuD

julia - 如何以编程方式从 Julia 中的字符串标识符定义变量?

php - Laravel Dusk 测试 click() 不工作

r - 根据两个坐标之间的最近距离对矩阵进行排序

reactjs - 为什么 React 在 parent 之前渲染 child ?

powerbi - power bi 中的计算列不更新结果

r - 在 igraph 中绘制适合度分布的幂律

java - 将原始类型传递给 JAX RS POST

reactjs - 如何用 React 组件替换 Markdown 渲染的 HTML 标签?