如何使用NA结果对地区进行地理编码

时间:2018-06-08 06:31:17

标签: r ggplot2 geocoding ggmap

我想在R中创建一个name of districts及其longlat的数据框。为此,我给出了命令:

>locations_df <- mutate_geocode(cities_df, district)

此命令使用maps.googleapis.com进行地理编码,但对于我的13个区,我得到NA error。其中一个错误粘贴在下面:

geocode failed with status OVER_QUERY_LIMIT, location = "Sukkur" 

如何为缺失值提供地理编码?我检查了谷歌地图上错过城市的名称是否有拼写错误,但没有看到这样的错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

老实说,您最好的选择可能是尝试再次运行查询。据我所知,结果似乎非常特殊(可能与WiFi上的动态IP有关?)。这些是我刚才的结果。

df %>% mutate_geocode(address)

Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Sukkur&sensor=false
  address lon lat
1  Sukkur  NA  NA
Warning message:
geocode failed with status OVER_QUERY_LIMIT, location = "Sukkur" 

所以我也失败了。我查看了我留下的查询,然后添加了#34; Paris&#34;检查结果。

geocodeQueryCheck()
2499 geocoding queries remaining.

df
  address
1  Sukkur

df[2,1]<-"Paris"
df %>% mutate_geocode(address)

Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Sukkur&sensor=false
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Paris&sensor=false
  address       lon      lat
1  Sukkur 68.822808 27.72436
2   Paris  2.352222 48.85661

现在它有效!

可以通过this question建议获取Google Maps API密钥来解决此问题,如果您安装了ggmap的GitHub版本,则可以使用该密钥。

另一种选择是作为答案here建议迭代请求。