【问题标题】:Plotting a data frame of coordinates into a route based on group将坐标数据框绘制到基于组的路线中
【发布时间】:2020-06-03 10:19:23
【问题描述】:

我希望在 R 中绘制地理空间数据。

我有一个数据框,其中包含 Lon、lat 和 activity 作为列。简化,看起来像

structure(list(lon = c(-0.198418, -0.19847, -0.198493, -0.198261, 
-0.198308, -0.19826), lat = c(51.565559, 51.565564, 51.565588, 
51.565695, 51.565524, 51.565492), ride = c(10L, 10L, 10L, 11L, 
11L, 11L)), row.names = c(NA, -6L), class = c("grouped_df", "tbl_df", 
"tbl", "data.frame"), groups = structure(list(ride = 10:11, .rows = list(
    1:3, 4:6)), row.names = c(NA, -2L), class = c("tbl_df", "tbl", 
"data.frame"), .drop = TRUE))

类似这样,但每次骑行有几千行:


         lon,      lat, ride
1   -0.19842    51.566  10
2   -0.19847    51.566  10
3   -0.19849    51.566  10
4   -0.19826    51.566  11
5   -0.19831    51.566  11
6   -0.19826    51.565  11

我想根据每次骑行将坐标绘制到地图上的路线中。我尝试使用 {leaflet},代码如下

leaflet(data = unnested_rides) %>% 
  addTiles() %>%
  addPolylines(~lon, ~lat)

但它无法区分分组变量,这意味着它只是一条长线,当我包含 group 时,它会使 RStudio 崩溃。如果可能的话,我想在 {leaflet} 中执行此操作,因为它不需要 Google API,但如果它更容易/质量更好,则可以使用 {ggmaps}。

我的直觉是迭代数据,将分组数据分层添加,尽管我不太确定如何去做。有没有人有什么建议?数据已从 Strava 下载,如果有人对此感兴趣的话。

谢谢!

【问题讨论】:

    标签: r leaflet


    【解决方案1】:
    • 如果您需要静态地图,我建议您使用静态地图包。如果您对 plot() 语法最熟悉,请从这种 tuto 开始,它向您展示如何渲染几组道路。如果您最熟悉 ggplot() 语法,请从这种tuto 开始。两者都可以让您轻松控制道路图层(让您永久寻求找到更好的数据源以满足您的需求)。两者都可以让您制作静态地图(或 .gif 或视频中的多个静态地图)。

    • 我猜你的电脑崩溃了,因为传单不需要你的数据,你需要在addPolylines(data = mydf2, lng = ~long, lat = ~lat, group = ~group) 后面的行中指明你的数据。见this answer in SO

    PS:有很多技术可以显示地图,然后,有很多选项可以直观地表示信息。由于您正在寻找“绘制地理空间数据”并且传单语法非常特定于绘制地图的 动态 图层并且也不会生成静态图像,因此您应该考虑 (a) 加载传单地图,然后 (b) 添加折线或某个点(标记),以便在地图上指示道路所在的位置(道路不会以其他颜色呈现)。 https://rstudio.github.io/leaflet/markers.html.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2020-03-06
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多