2015-03-25 108 views
0

我正在使用德国的街道名称,街道号码,邮政编码和城市等其他地理信息处理R中的对象数据。 我想使用函数来获取特定地址的lon和lat信息并更新我的数据框。 随着从该数据框的每个opbject的lon和lat,我在qmap中生成一个geom_point。我如何获取(获取)给定地址的最大值和最小值R

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

回答

0

您可以使用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= 
      [email protected]', 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) 
    } 
} 
+0

嗨克里斯,谢谢你的功能。我需要一个城市给定的街道和街道号的lon和lat。所以我的数据框看起来像街道; street_number; POSTAL_CODE;城市的研究。我可以在街道和街道号码和城市中扩展FindGPS中的城市名称片段吗?在函数“return(latlon)”的末尾,我需要用lon和lat两个新字段更新我的数据框。 – SebastianS 2015-03-26 09:43:59

+0

我*认为*所以,但我没有在几年内使用过的代码 - 也许检查api文档? – 2015-03-26 12:39:08

相关问题