R 使用纬度和经度查找POI(2km以内)
我有一个数据集,它对应于Zipcode以及lat和log。我想找出距离该纬度和经度2km内的医院/银行列表 怎么做 Long/Lat数据如下所示R 使用纬度和经度查找POI(2km以内),r,latitude-longitude,ggmap,geocode,R,Latitude Longitude,Ggmap,Geocode,我有一个数据集,它对应于Zipcode以及lat和log。我想找出距离该纬度和经度2km内的医院/银行列表 怎么做 Long/Lat数据如下所示 store_zip lon lat 410710 73.8248981 18.5154681 410209 73.0907 19.0218215 400034 72.8148177 18.9724162 400001 72.836334 18.9385352 400102 72.8344
store_zip lon lat
410710 73.8248981 18.5154681
410209 73.0907 19.0218215
400034 72.8148177 18.9724162
400001 72.836334 18.9385352
400102 72.834424 19.1418961
400066 72.8635299 19.2313448
400078 72.9327444 19.1570343
400078 72.9327444 19.1570343
400007 72.8133825 18.9618411
400050 72.8299518 19.0551695
400062 72.8426858 19.1593396
400083 72.9374227 19.1166191
400603 72.9781047 19.1834148
401107 72.8929 19.2762702
401105 72.8663173 19.3053477
400703 72.9992013 19.0793547
401209 NA NA
401203 72.7983705 19.4166761
400612 73.0287209 19.1799265
400612 73.0287209 19.1799265
400612 73.0287209 19.1799265
如果你的兴趣点是未知的,你需要找到它们,你可以通过我的谷歌软件包使用谷歌的API,正如你在评论中所建议的那样。您需要一个有效的API密钥才能使其工作 由于API一次只能接受一个请求,因此您需要一次迭代一行数据。为此,您可以使用您最熟悉的任何循环方法
library(googleway) ## using v2.4.0 on CRAN
set_key("your_api_key")
lst <- lapply(1:nrow(df), function(x){
google_places(search_string = "Hospital",
location = c(df[x, 'lat'], df[x, 'lon']),
radius = 2000)
})
您也可以在地图上查看它们
set_key("map_api_key", api = "map")
## the lat/lon of the returned results are found through `place_location()`
# place_location(lst[[1]])
df_hospitals <- place_location(lst[[1]])
df_hospitals$name <- place_name(lst[[1]])
google_map() %>%
add_circles(data = df[1, ], radius = 2000) %>%
add_markers(data = df_hospitals, info_window = "name")
注:
谷歌的API限制为每天每个密钥2500次查询,除非您为高级帐户付费。
如果你的兴趣点是未知的,你需要找到它们,你可以通过我的谷歌软件包使用谷歌的API,正如你在评论中所建议的那样。您需要一个有效的API密钥才能使其工作 由于API一次只能接受一个请求,因此您需要一次迭代一行数据。为此,您可以使用您最熟悉的任何循环方法
library(googleway) ## using v2.4.0 on CRAN
set_key("your_api_key")
lst <- lapply(1:nrow(df), function(x){
google_places(search_string = "Hospital",
location = c(df[x, 'lat'], df[x, 'lon']),
radius = 2000)
})
您也可以在地图上查看它们
set_key("map_api_key", api = "map")
## the lat/lon of the returned results are found through `place_location()`
# place_location(lst[[1]])
df_hospitals <- place_location(lst[[1]])
df_hospitals$name <- place_name(lst[[1]])
google_map() %>%
add_circles(data = df[1, ], radius = 2000) %>%
add_markers(data = df_hospitals, info_window = "name")
注:
谷歌的API限制为每天每个密钥2500次查询,除非您为高级帐户付费。
到目前为止你试过什么吗?这似乎是一个有趣的问题,但如果没有任何代码,它也可能被标记为broad@loki-我对R很陌生…试着找到一些有趣的东西。。。搜索一个特定的地点类型google_placeslocation=c73.8248981,18.5154681,place_type=Hospital,radius=20000,key=key但是如何使用R中的google api定义这个键。我认为他的两个链接非常有用——google_places功能是一个东西吗?如果是的话,它来自哪个软件包?我想软件包名是Googleway。请在问题中添加您尝试过的内容以及错误消息。因此,其他人可以帮助你。到目前为止你试过什么吗?这似乎是一个有趣的问题,但如果没有任何代码,它也可能被标记为broad@loki-我对R很陌生…试着找到一些有趣的东西。。。搜索一个特定的地点类型google_placeslocation=c73.8248981,18.5154681,place_type=Hospital,radius=20000,key=key但是如何使用R中的google api定义这个键。我认为他的两个链接非常有用——google_places功能是一个东西吗?如果是的话,它来自哪个软件包?我想软件包名是Googleway。请在问题中添加您尝试过的内容以及错误消息。因此,其他人能够在这方面帮助你。