Ggmapのジオコードを使用して、さまざまな都市の緯度と経度を見つけています。昨日は完全に機能していましたが、今日はたった1つのリクエストでQUERY OVER OVERになります。
実際、ライブラリをロードしてジオコードを実行すると、OVER QUERY LIMITエラーがスローされます。
> library(ggmap)
> geocode("Paris")
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Paris&sensor=false
lon lat
1 NA NA
Warning message:
geocode failed with status OVER_QUERY_LIMIT, location = "Paris"
Stackoverflowでさまざまなトピックをチェックしましたが、同じ問題を抱えている人はいないようです。 2500の制限を超えているかどうかを確認しようとしました(非常に低いですが、コーディングに不慣れなので、何か間違ったことをしたかもしれません...)、geocodeQueryCheck()は2498を読み取りますが、その後、library(ggmap) 。
15分前にRstudioを再起動したときに機能していましたが、もう機能しなくなり、完全に失われました!
何が問題なのか誰にも分かりますか?
PS:私はstackoverflowが初めてなので、何かコメントがあれば教えてください!
ggmap::geocode()
が残りのジオコーディングクエリを十分に表示しているにもかかわらず、約20%の場所でOVER QUERY LIMITエラーが発生する場所のバッチに対してgeocodeQueryCheck()
を使用すると、同様の問題が発生しました。エラーは、最後の20%だけでなく、場所全体に散発的に広がりました。最初に失敗した場所のサブセットを再実行した場合、ほとんどの場合は再び機能するため、すべてのジオコードが含まれるまで小さなサブセットを反復処理する必要がありました。
ggmap v2.7では、ユーザーはregister_google()
関数を介してGoogle Maps APIキーを指定できます。 v2.7はまだCRAN上にないため、devtools::install_github("dkahle/ggmap")
を使用してインストールする必要があります。そのバージョンに更新してAPIキーregister_google(key = "my_api_key")
を設定した後、同じバッチが1回の実行で期待どおりに機能しました。
Google Maps APIキーは簡単に取得できます。 https://developers.google.com/maps/documentation/geocoding/get-api-key
割り当てを確認したい場合は、 Google Maps APIキー を取得してから、googleway
パッケージで使用してください。
library(googleway)
key <- "your_api_key"
google_geocode(address = "Paris", key = key)
# $results
# address_components
# 1 Paris, Paris, Île-de-France, France, Paris, Paris, Île-de-France, FR, locality, political, administrative_area_level_2, political, administrative_area_level_1, political, country, political
# 2 Paris, Lamar County, Texas, United States, Paris, Lamar County, TX, US, locality, political, administrative_area_level_2, political, administrative_area_level_1, political, country, political
# formatted_address geometry.bounds.northeast.lat geometry.bounds.northeast.lng geometry.bounds.southwest.lat
# 1 Paris, France 48.90214 2.469921 48.81557
# 2 Paris, TX, USA 33.73838 -95.435455 33.61185
# geometry.bounds.southwest.lng geometry.location.lat geometry.location.lng geometry.location_type
# 1 2.225193 48.85661 2.352222 APPROXIMATE
# 2 -95.627928 33.66094 -95.555513 APPROXIMATE
# geometry.viewport.northeast.lat geometry.viewport.northeast.lng geometry.viewport.southwest.lat geometry.viewport.southwest.lng
# 1 48.90214 2.469921 48.81557 2.225193
# 2 33.73838 -95.435455 33.61185 -95.627928
# place_id types
# 1 ChIJD7fiBh9u5kcRYJSMaMOCCwQ locality, political
# 2 ChIJmysnFgZYSoYRSfPTL2YJuck locality, political
#
# $status
# [1] "OK"
Api_keyに登録しようとしましたが、有料サービスのようです。
source =“ dsk”が唯一の回避策のようです:
geocode( "Paris"、source = "dsk")
動作するか確認してください。
リクエストはキーを使用しません。つまり、同じサーバーでホストされているすべてのページでクォータを共有します(同じIPアドレス/何百ものドメインである可能性があります)。
このライブラリは、ビジネスユーザーが資格情報を提供するためのオプションのみをサポートしているようです。
2014からの機能リクエスト がありますが、実装されていない限り、このライブラリを使用するときに(非ビジネスユーザーとして)できることはありませんライブラリを変更しますが、私はRに精通していないため、これ以上の支援はできません)。