【问题标题】:Converting latitude and longidue into multipolygon将纬度和经度转换为多面体
【发布时间】:2022-11-28 00:39:38
【问题描述】:

我一直在尝试将纬度和经度转换为多边形对象,以便我可以使用 tmap 库来绘制它,但我做不到。使用 st_as_sf 进行转换不起作用,有人可以帮助我吗?我附上示例数据集。

coor<-structure(list(Type = c("Registry", "Registry", "Registry", "Registry", "Platform", "Registry"),`Location of coordinating center` = c("USA","USA", "USA", "USA", "United Kingdom", "United Kingdom"),`3ISO code` = c("USA", "USA", "USA", "USA", "GBR", "GBR"), `WHO region code` = c("AMR","AMR", "AMR", "AMR", "EUR", "EUR"), city = c("Philadelphia","Chicago", "Washington", "Alexandria", "London", "Manchester"), lat = c(32.7761, 41.8373, 38.9047, 38.8185, 51.50853, 53.4794), lng = c(-89.1221, -87.6862, -77.0163, -77.0861, -0.12574, -2.2453)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))

【问题讨论】:

  • 请包括您尝试过的代码,如果可能的话,您的预期输出,草图可能就足够了。

标签: r sf tmap


【解决方案1】:

Convert sequence of longitude and latitude to polygon via sf in R 如果您在此线程(或相关线程)中找到了解决方案,请告诉我。

【讨论】:

    【解决方案2】:

    两个cmets:

    • 您不太可能将数据转换为多面体对象,因为每个城市只有一个坐标对/拼写指向我,而不是多边形
    • 你在sf::st_as_sf()的正确轨道上

    您需要在st_as_sf 电话中做些什么才能使其正常工作

    1. 在您的数据框中指定具有坐标信息和
    2. 为数字赋予意义(它们是度数?米?还是美国人一直感到爱国并以英尺为单位对数据进行编码?)您为此使用坐标参考系统 (crs)。

      对于长纬度数据,EPSG:4326 通常是一个很好的默认值。

      library(sf)
      library(tmap)
      
      sf_coords <- coor %>% 
        st_as_sf(coords = c("lng", "lat"), crs = 4326)
      
      tmap_mode("view")
      
      tm_shape(sf_coords) +
        tm_bubbles(size = 5, col = "red", id = "city") +
        tm_basemap(leaflet::providers$Stamen.Watercolor)
      

    【讨论】:

      猜你喜欢
      • 2021-10-20
      • 2020-09-02
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多