【问题标题】:Reverse geocoding with gadm database in r language使用 r 语言使用 gadm 数据库进行反向地理编码
【发布时间】:2020-12-18 11:34:28
【问题描述】:

我有 6000 个对象,只有 lng 和 lat。 使用波兰的 GADM 数据集,我可以找到点在哪里。 这里我有带有边界的 LargeSpdataframe 各省

library(raster)

voiv<-getData("GADM", country = "PL", level = 1)

county<-getData("GADM", country = "PL", level = 2)

在水平下降,更详细的细分

gm<-getData("GADM", country = "PL", level = 3)

我想找到点在哪里,像这样。(它唯一的例子。)

lng      lat      voiv   county     gm

20.28222 50.72641 Lubuskie Sieradz Sieradz

如何定义 Ggps 点。我正在使用over 函数但不起作用。

【问题讨论】:

    标签: r overlay raster reverse-geocoding


    【解决方案1】:

    这应该可以使用 ggmap 的 revgeocode 函数,但您需要自己的 API 密钥

    library(ggmap)
    
    ggmap::register_google(key = "your api key")
    
    
    revgeocode(location = c(20.28222, 50.72641), output = c("address", "all"), force = FALSE, urlonly = FALSE, override_limit = FALSE)
    
    
    "Mniszek 4, 28-366, Poland"
    

    【讨论】:

      【解决方案2】:

      坐标和名称位于不同的插槽中。使用coordinates 提取前者。之后你可以一起cbind他们。

      r <- cbind(gm[grep("^NAME", names(gm))], `colnames<-`(coordinates(gm), c("lng", "lat")))
      

      在结果中找到 Lubuskie:

      head(r[r$NAME_1 %in% "Lubuskie", ])
      #       NAME_0   NAME_1 NAME_2            NAME_3      lng      lat
      # 41070 Poland Lubuskie Gorzów         Bogdaniec 15.09408 52.68379
      # 41116 Poland Lubuskie Gorzów          Deszczno 15.29237 52.65471
      # 40825 Poland Lubuskie Gorzów           Klodawa 15.26856 52.82939
      # 41258 Poland Lubuskie Gorzów Kostrzyn Nad Odra 14.63813 52.61470
      # 40855 Poland Lubuskie Gorzów          Lubiszyn 14.98341 52.79892
      # 40950 Poland Lubuskie Gorzów            Santok 15.43891 52.74680
      

      【讨论】:

        【解决方案3】:

        您可以使用raster::extract

        library(raster)
        voiv <- getData("GADM", country = "POL", level = 1)
        xy <- cbind(20.28222, 50.72641)
        
        e <- extract(voiv[, c("NAME_0", "NAME_1")], xy)
        e
        #  point.ID poly.ID NAME_0         NAME_1
        #1        1      13 Poland Swietokrzyskie
        

        【讨论】:

          猜你喜欢
          • 2018-05-30
          • 1970-01-01
          • 1970-01-01
          • 2021-01-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多