由于被世界卫生组织的IARC列为可能的致癌物,草甘磷最近成为了聚光灯下的焦点。我对美国的杀虫剂使用模式感到好奇,并用R-Shiny中的交互式地图绘制了这些数据,例如,使用leaflet。
可以在这里找到县一级对杀虫剂使用的估计:https://water.usgs.gov/nawqa/pnsp/usage/maps/county-level/
数据使用州/县FIPS代码进行报告。我需要使用经纬度坐标来显示数据。
从lat-long转换到FIPS似乎很容易,如下面的API所示:https://geo.fcc.gov/api/census/
如何反其道而行?
发布于 2019-06-24 11:35:21
我发现的解决方案需要使用以下五个选项中的一个来自here.com的REST API。我首先使用library(tigris)中的fips_codes表交叉引用了来自美国地质调查局表与县和州名称的FIPS代码。这为我提供了要放在地址行中的名称,如Boulder County, CO。接下来,我编写了一个小函数here_now,示例用法如下:
here_now("Boulder+County,+CO") # $lat: 40.08791; $lon: -105.3447实现是使用library(jsonlite)中的fromJSON调用REST API
here_now <- function(searchtext) {
AppCode <- getOption("hereAppCode")
AppID <- getOption("hereAppID")
rootURL <- "https://geocoder.api.here.com/6.2/geocode.json?"
app_id = paste("app_id", AppID, sep="=")
app_code = paste("app_code", AppCode, sep="=")
searchtext = paste("searchtext", searchtext, sep="=")
request <- paste(paste(rootURL, app_id, sep=''), app_code, searchtext, sep="&")
response = fromJSON(request)
res <- list()
res$lat <- response$Response$View$Result[[1]]$Location$NavigationPosition[[1]]$Latitude
res$lon <- response$Response$View$Result[[1]]$Location$NavigationPosition[[1]]$Longitude
res
}此外,我使用了FCC的反向地理编码API来验证:https://geo.fcc.gov/api/census/
我尝试过的地理编码选项包括:-通过ggmap的google API (需要API密钥,需要信用卡)- mapquest API (需要API密钥,不需要信用卡)- Data Science Toolkit的RDSK实现-通过同名R包的Geonames服务-这里API(需要AppID和AppCode,免费增值模型)
https://stackoverflow.com/questions/56639306
复制相似问题