将经度和纬度转换为R中的英国邮政编码
我有大量的经度和纬度数据,我想把它们转换成英国的邮政编码。我首先尝试下载所有英国邮政编码及其对应的long/lat,然后将数据连接在一起。这对一些数据有效,但大多数数据不匹配,因为邮政编码的纬度和经度是每个邮政编码的中心,而我的数据更准确 我还尝试了一些代码,将美国的Lat/long转换为相应的state(这里由Josh O'Brien提供),但我找不到将其更改为英国邮政编码的方法 我还尝试运行一个计算,试图找到与long/lat最接近的邮政编码,但这会创建一个文件太大,R无法处理 还看到了一些使用谷歌地图(地理编码)的代码,这看起来确实有效,但我读到它一天只允许2000次计算,我有比这多得多的数据(大约500万行)我相信你想使用谷歌地图API。即解析纬度和经度并获取最近的地址。之后,你可以很容易地从地址中提取邮政编码。(它是您从google maps API收到的地址列表中的一项。) api(上次我检查时)允许每天2500次免费调用,但您可以使用几种技巧(取决于您的数据集)来匹配更多记录:将经度和纬度转换为R中的英国邮政编码,r,google-maps,latitude-longitude,reverse-geocoding,postal-code,R,Google Maps,Latitude Longitude,Reverse Geocoding,Postal Code,我有大量的经度和纬度数据,我想把它们转换成英国的邮政编码。我首先尝试下载所有英国邮政编码及其对应的long/lat,然后将数据连接在一起。这对一些数据有效,但大多数数据不匹配,因为邮政编码的纬度和经度是每个邮政编码的中心,而我的数据更准确 我还尝试了一些代码,将美国的Lat/long转换为相应的state(这里由Josh O'Brien提供),但我找不到将其更改为英国邮政编码的方法 我还尝试运行一个计算,试图找到与long/lat最接近的邮政编码,但这会创建一个文件太大,R无法处理 还看到了一些
devtools::install_github("ropensci/PostcodesioR")
library(PostcodesioR)
reverse_geocoding(0.127, 51.507)
另一个选项是使用此功能对多对地理坐标进行反向地理编码:
geolocations_list <- structure(
list(
geolocations = structure(
list(
longitude = c(-3.15807731271522, -1.12935802905177),
latitude = c(51.4799900627036, 50.7186356978817),
limit = c(NA, 100L),
radius = c(NA, 500L)),
.Names = c("longitude", "latitude", "limit", "radius"),
class = "data.frame",
row.names = 1:2)),
.Names = "geolocations")
bulk_rev_geo <- bulk_reverse_geocoding(geolocations_list)
bulk_rev_geo[[1]]$result[[1]]
地理位置\u按转换列出您的意思是找到最近的?如果是这样,而R无法解决这个问题,那么您可以尝试使用专用的GIS软件,例如,这可以在中完成,我也可以想象。我讨厌GIS人群FUD abt R。它速度非常快(它使用与大多数GIS产品相同的底层库),尤其是sf
@纳维德:你有一个带有邮政编码信息的形状文件吗?谢谢你@hrbrmstr的评论,我现在没有形状文件,我唯一的邮政编码信息是所有英国邮政编码的列表,它们代表经度和纬度。hanks@DanWinchester,是的,我的意思是找到最近的。我可能会尝试这作为最后的手段,因为我以前没有使用过GIS软件。它能交出500万张唱片吗?这可能会被分解,如果不是的话,你不能只对你的邮政编码进行地理编码,例如,用Hi Borislav,谢谢你,但我已经涉猎了一点。我现在有大约500万行数据,所以这不会真正起作用(即使我把它分解成更小的部分)。谢谢你的Epo3,你知道批量反向地理代码是否有限制吗?例如,上面的代码是一次运行还是两次运行(当您将2个long/lat更改为邮政编码时)?如果它是1,那么我可以将我的数据拆分一点,然后运行它们。我从未达到极限。这是因为您一直使用低于极限(2500)的数据,还是您还没有遇到问题?