web-dev-qa-db-ja.com

ジオコードを使用した1回のリクエスト後のクエリ制限の取得

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が初めてなので、何かコメントがあれば教えてください!

38
Edouard Cuny

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

31
sbha

割り当てを確認したい場合は、 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"
15
SymbolixAU

Api_keyに登録しようとしましたが、有料サービスのようです。

source =“ dsk”が唯一の回避策のようです:

geocode( "Paris"、source = "dsk")

動作するか確認してください。

9
Ghose Bishwajit

2018年6月11日から Google変更 Google APIへのアクセス。

これで、アカウントにクレジットカードを設定する必要があり、APIを使用する許可を得ることができます。そこには無料のアカウントがあり、クレジットカードには何も請求されません。ただし、実行できるクエリの数には制限があります(この変更前のように)。

クエリの追加 が必要な場合は、APIを使用して無料の制限を増やすと課金される通常のアカウントに変更する必要があります。

7
NetVicious

リクエストはキーを使用しません。つまり、同じサーバーでホストされているすべてのページでクォータを共有します(同じIPアドレス/何百ものドメインである可能性があります)。

このライブラリは、ビジネスユーザーが資格情報を提供するためのオプションのみをサポートしているようです。

2014からの機能リクエスト がありますが、実装されていない限り、このライブラリを使用するときに(非ビジネスユーザーとして)できることはありませんライブラリを変更しますが、私はRに精通していないため、これ以上の支援はできません)。

4
Dr.Molle