Rのget_map()
関数(ggmap
ライブラリ)でこの問題に直面しています。
私のコードは、数か月間APIキー(_source = "google"
_)を指定する必要なく実行されていました。ただし、コードは数週間前に機能しなくなりました。 GoogleがAPIキーを必須にしていることを理解しました(または、私が使い果たしたAPIキーなしで特定の呼び出しを許可していない可能性があります)。
ただし、APIキー(Google Cloud Platformから取得)を指定した後でも、コードは同じように動作し続けました。私もGoogle Cloudサポートに連絡しましたが、彼らはAPIキー自体には何も問題はなく、最後にマップを呼び出すことができると言っていました。
Googleからマップを呼び出しているときに、get_map()
関数が_api_key
_を渡していないようです。解決への指針をいただければ幸いです。
以下は、再現可能なコードです(失敗しています)。
_library(ggmap)
lat <- c(4,41) # India lat boundaries
lon <- c(68,99) # India long boundaries
center = c(mean(lat), mean(lon))
map <- get_map(location = c(lon = mean(lon),
lat = mean(lat)),
api_key = <my api key>,
zoom = 6,
maptype = "terrain",
source = "google",
messaging = TRUE
)
_
以下はRのエラーメッセージです(APIキーが渡されないことに注意してください)
_trying URL 'http://maps.googleapis.com/maps/api/staticmap?center=22.5,83.5&zoom=6&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false'
Error in download.file(url, destfile = tmp, quiet = !messaging, mode = "wb") :
cannot open URL 'http://maps.googleapis.com/maps/api/staticmap?center=22.5,83.5&zoom=6&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false'
In addition: Warning message:
In download.file(url, destfile = tmp, quiet = !messaging, mode = "wb") :
cannot open URL 'http://maps.googleapis.com/maps/api/staticmap?center=22.5,83.5&zoom=6&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false': HTTP status was '403 Forbidden'
_
Rのすべての新しいセッションで_register_google(key = "..."
_)を使用する必要があります。get_map()
呼び出し内で_api_key =
_を使用しても機能しません。
更新:ggmap 2.7.904および現在のGoogle Cloud APIについて2018-12-24
_require(devtools)
devtools::install_github("dkahle/ggmap", ref = "tidyup")
_
必要なAPI:静的マップおよびジオコーディング
一般設定で請求を有効にします。
_library(ggmap)
register_google(key = "...") # copied directly from Google Console via 'copy' button
_
_ggmap(get_googlemap())
_
_ggmap(get_map("Hannover, Germany"))
_
ここでエラー(Forbidden 403など)が発生した場合、適切なAPIのキーを有効にしていない可能性があります。 ジオコーディングのトラブルシューティングのチュートリアル
_ggmap(get_map(location=c(16.3738,48.2082), zoom=13, scale=2))
_
Roman Abashinの答えに追加するだけです(残念ながらコメントできません): '?get_map()'によると、 'api_key ='引数はGoogleマップでは機能しません。 「register_google()」関数を使用する必要がありますが、03/10/18の時点では、ggmapの開発バージョンでのみ使用できます。
devtools::install_github("dkahle/ggmap", ref = "tidyup")
次に、Googleアカウントで課金を有効にする必要がありますが、毎月使用する最初の100,000個のマップは無料である必要があります。こちらを参照してください: https://cloud.google.com/maps-platform/pricing/ sheet / 詳細については。
(ここからのヒント: https://github.com/dkahle/ggmap/issues/51 )
@Romanの応答に追加するだけで、次のコードが役に立ちました。
if(!requireNamespace("devtools")) install.packages("devtools")
devtools::install_github("dkahle/ggmap", ref = "tidyup")
library(ggmap)
register_google(key = "your_API_key")
usa<- get_googlemap(location='united states', zoom=4,maptype = "hybrid")
詳細については、githubのライブラリページを参照できます。 here
うまくいけば助かります!