2015-12-21 11 views
12

Rggmapsライブラリのgeocode関数を使用して、特定の場所の座標を取得しようとしています。私は今までのところ関数を細かく使うことができます。ggmapのジオコード関数のapi限界を増やす(R)

私が遭遇している問題は、2,500から100,000に1日制限を増やしたいということです。 Googleの公式のGoogle documentation は、プロジェクトで請求を有効にするとこれは簡単に可能であると言います。このプロセスを進めると、Google Developers ConsoleはパーソナライズされたAPIキーを提供します。

ただし、geocode関数には、このパーソナライズされたAPIキーを入れるオプションがありません。その代わりに、Google Maps API for Work顧客がAPIにアクセスする方法である、client(ビジネスユーザーのためのクライアントID)を要求し、signature(ビジネスユーザーのための署名)。これはオプションでもありますが、Google Maps API for Workは大企業のアカウント用に設計されているようです。

毎日のクォータは24時間ごとに100,000リクエスト、年間契約購入に基づいています。

だから私の質問はこれに沸く:私はGoogle MapsのジオコーディングAPIにpingをRggmapsライブラリからgeocode機能を使用することができますか?

答えて

4

自分がRCurlライブラリーから(既存getURL機能を使用して、私はこの質問に答えるために(ggmapライブラリから)既存のgeocode機能を使用する方法を見つけることができませんでしたので、私はちょうどちょうどこれを行うための新しい関数を作成)およびfromJSON関数(RJSONIOライブラリから)。

は、新しい関数を書く:

library(RJSONIO) 
library(RCurl) 

getGeoData <- function(location){ 
    location <- gsub(' ','+',location) 
    geo_data <- getURL(paste("https://maps.googleapis.com/maps/api/geocode/json?address=",location,"&key=**[YOUR GOOGLE API KEY HERE]**", sep="")) 
    raw_data_2 <- fromJSON(geo_data) 
    return(raw_data_2) 
} 

テスト: getGeoData("San Francisco")

これはあなたによって生成されるリストと同じ正確な形式ではほとんど(しかしかなり)だ同じデータを持つリストを与えますgeocode("San Francisco")。このため

5

ありがとう!それは私に非常に役立った。 あなたのソリューションはかなり特殊なものなので、私はあなたの関数の適応を含めたいと思っていました。 raw_datageo_data_listは定義されていないため、バグが投げられました。私はあなたの地域の環境に固有のものだと推測しています。私にとって

、場所を入力し、緯度を返すには、LONはこれで働いていた:

getGeoData <- function(location, api_key){ 
    location <- gsub(' ','+',location) 
    geo_data <- getURL(paste("https://maps.googleapis.com/maps/api/geocode/json?address=",location,sprintf("&key=%s",api_key), sep="")) 
    geo_data <- fromJSON(geo_data) 
    return(geo_data$results[[1]]$geometry$location) 
} 

あなたはあまりにも緯度経度以外の異なる特性を得るためにgeo_dataへのインデックスにreturn文を変更することができます。

これは誰かを助けることを望みます。私はあなたがあなたのAPIキーを指定することができ、GoogleマップAPIにアクセスするためのパッケージgooglewayを書いた

8

R。13のようggmapバージョン2.7以上(まだ利用できませんクランの12月、で

例えば

library(googleway) 

key <- "your_api_key" 

google_geocode(address = "San Francisco", 
       key = key) 

# $results 
# address_components 
# 1 San Francisco, San Francisco County, California, United States, SF, San Francisco County, CA, 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 San Francisco, CA, USA      37.92977      -122.3279      37.69313 
# geometry.bounds.southwest.lng geometry.location.lat geometry.location.lng geometry.location_type 
# 1      -123.1661    37.77493    -122.4194   APPROXIMATE 
# geometry.viewport.northeast.lat geometry.viewport.northeast.lng geometry.viewport.southwest.lat 
# 1       37.812      -122.3482       37.7034 
# geometry.viewport.southwest.lng     place_id    types 
# 1      -122.527 ChIJIQBpAG2ahYAR_6128GcTUEo locality, political 
# 
# $status 
# [1] "OK" 
7

ていますが、devtools::install_github("dkahle/ggmap")でインストールすることができ、あなたは単にregister_google(key = 'LONG KEY STRING')を実行する必要があり、その後、あなたはいずれかを呼び出すことができますgeocodemutate_geocodeなどのggmap関数のAPIキーを使用してください。