2017-02-16 16 views
1

私はRライブラリGgmapを使ってベクトルをジオロケーションにしようとしています。Ggmap "dsk"レート制限

location_google_10000 <- geocode(first10000_string, output = "latlon", 
    source = "dsk", messaging = FALSE) 

問題は、私は-Theデータ科学のツールキットAPI-「DSK」を使用していますので、それが(2500年にザ・リミテッドは、一日あたりの座標)グーグルなどの制限を評価していないということです。実際にGoogleやDSK場合、私は1000のアドレスとDSKでコードを実行しようとした、と後でチェックしてい

Error: google restricts requests to 2500 requests a day for non-business use. 

:私は2500以上を含むベクターを使用して実行しようとすると、しかし、それは次のメッセージをポップAPIが使用されています:

> geocodeQueryCheck() 
2500 geocoding queries remaining. 

ので、いくつかの理由で、それは私が「DSK」で2500以上のものを使用することはできませんが、私はそのGoogleアカウントを使用していないことを確信しています。

答えて

3

私はちょうど同じ問題に遭遇し、あなたの投稿を見つけました。 clientsignatureの値をダミーの値に設定することで、この問題を回避することができました。

geocode(myLocations, client = "123", signature = "123", output = 'latlon', source = 'dsk') 

問題がジオコード機能のこの部分にあるように思われる...

if (length(location) > 1) { 
     if (userType == "free") { 
      limit <- "2500" 
     } 
     else if (userType == "business") { 
      limit <- "100000" 
     } 
     s <- paste("google restricts requests to", limit, "requests a day for non-business use.") 
     if (length(location) > as.numeric(limit)) 
      stop(s, call. = F) 

userTypeは、コードのこの部分に上記設定されている...

if (client != "" && signature != "") { 
     if (substr(client, 1, 4) != "gme-") 
      client <- paste("gme-", client, sep = "") 
     userType <- "business" 
    } 
    else if (client == "" && signature != "") { 
     stop("if signature argument is specified, client must be as well.", 
      call. = FALSE) 
    } 
    else if (client != "" && signature == "") { 
     stop("if client argument is specified, signature must be as well.", 
      call. = FALSE) 
    } 
    else { 
     userType <- "free" 
    } 

ので、 clientsignatureのパラメータが空の場合、userTypeは「空き」に設定され、次に制限は2,500に設定されます。これらのパラメータに値を指定することで、100,000という制限のある「ビジネス」ユーザーとみなされます。これは、ユーザーがソースとして 'dsk'ではなく 'Google'を使用していると想定されている場合には有効ですが、ソースが 'dsk'でオーバーセットされていると過熱です。 ...のようなものかもしれない心シンプルにclientsignatureパラメータはいえ、他のソースのために計画された場合に問題を引き起こす

if (source == "google") { 
     if (client != "" && signature != "") { 
       if (substr(client, 1, 4) != "gme-") 
        client <- paste("gme-", client, sep = "") 
       userType <- "business" 
      } 
      else if (client == "" && signature != "") { 
       stop("if signature argument is specified, client must be as well.", 
        call. = FALSE) 
      } 
      else if (client != "" && signature == "") { 
       stop("if client argument is specified, signature must be as well.", 
        call. = FALSE) 
      } 
      else { 
       userType <- "free" 
      } 
    } else { 
      userType <- "business" 
} 

。私はパッケージの著者にpingします。

+0

ありがとうございました!それは仕事の種類ですが、まだ限られています。その理由は、ダミー値を使用すると2500の上限にジャンプしますが、ビジネスGoogleの上限である10,000というエラーで停止します。エラー:Googleはビジネス以外の目的で1日にリクエストを100000リクエストに制限します。 –