【问题标题】:How do I get (fetch) the lon and lat for a given address in R如何获取(获取)R 中给定地址的 lon 和 lat
【发布时间】:2015-03-25 12:27:50
【问题描述】:

我在 R 中处理对象数据以及来自德国的街道名称、街道号码、邮政编码和城市等附加地理信息。 我想使用一个函数来获取特定地址的 lon 和 lat 信息并更新我的数据框。 使用该数据帧中每个对象的 lon 和 lat,我正在 qmap 中生成一个 geom_point。

欢迎任何有关 R 中可能解决方案的帮助或信息,或在哪里查找更多信息。 塞巴斯蒂安

【问题讨论】:

    标签: r latitude-longitude street-address


    【解决方案1】:

    您可以使用 Google Maps API 进行反向地理编码,但您会很快受到速率限制。已经有一个使用这个 Google API 的 R 包,但我编写了这个函数,用于使用 openstreetmap API 进行反向地理编码。但是,请务必在通话中填写您的电子邮件,以便他们在您开始给他们的服务器带来压力时与您联系。

    FindGPS <- function(cityname)  {
      library("RJSONIO") 
      cityname <- gsub(" ","\\+",cityname) #add '+' character to URL 
      #Open Connection
      SITE <- paste('http://nominatim.openstreetmap.org/
              search?q=',cityname,'&format=json&email=
              youremailhere@gmail.com', sep="") 
      con <- url(SITE)
      data.json <- fromJSON(paste(readLines(con,warn=FALSE),
                                  collapse=""))
      close(con)
      t<-length(data.json)
    
      if(t>0)   {
        lat <- data.json[[1]]$lat
        long <- data.json[[1]]$lon
        latlong<-c(lat, long)
        return (latlong)
      }
    }
    

    【讨论】:

    • 嗨,克里斯,感谢您的工作。对于城市中的给定街道和街道编号,我需要 lon 和 lat。所以我的数据框看起来像街道;街道号码;邮政编码;城市。我可以在 FindGPS 中使用街道和街道编号以及城市来扩展城市名称 sn-p 吗?在函数“return(latlon)”的末尾,我需要使用两个新字段 lon 和 lat 更新我的数据框。
    • 认为是这样,但我已经有几年没用过代码了——也许检查一下 api 文档?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2016-05-10
    相关资源
    最近更新 更多