私はここが初めてで、R の Leaflet マップで Google Maps API を使用して Google マップのベース レイヤーを呼び出す方法を理解するのに助けが必要でした。これまでに学んだことは次のとおりです。
- Pavel Shramov の Leaflet プラグインを使用すると、Google のベース マップを Leaflet JS 内から呼び出すことができます。これは、私が理解している方法では、Google の ToS に準拠しています。この例は、ここで入手できます。これは非常にうまく機能します。
- htmltools および htmlwidgets を介して、Leaflet for R で任意の Leaflet JS プラグインを使用するための一般的な手順があります。
上記に基づいて、R のコードは次のようにする必要があることを理解していますが、Google ベースマップを読み込むことができません。
library(leaflet)
library(htmltools)
library(htmlwidgets)
# 1: Tell htmlwidgets where to look for the script and stylesheets
gLeafletPlugin <- htmlDependency("gLeaflet","1.9.0",
src = c(href = "https://cdnjs.cloudflare.com/ajax/libs/leaflet-plugins/1.9.0/layer/tile/"),
script = "Google.js")
# FIRST PLACE WHERE I AM STUCK: I am pretty sure, I also need to pass on
# the Google Maps API script reference before or along with the above command,
# but trying to include two htmlDependency objects together in a list, did not
# work. Maybe I wasn't doing it right.
# 2: Make a map and add the htmlDependency object to it
registerPlugin <- function(map, plugin) {
map$dependencies <- c(map$dependencies, list(plugin))
map
}
leaflet() %>%
setView(76.65, 12.32, zoom = 9) %>%
registerPlugin(gLeafletPlugin) %>%
# 3: Pass on custom JS logic: SECOND PLACE WHERE I AM STUCK
onRender("function(el, x) {
L.Google('TERRAIN').addTo(this);
}")
誰かが私に見せてくれるとありがたいです:(a)複数のスクリプトが関係している場合のhtmlDependencyを登録する正しい方法。(b) Google Terrain ベースマップを表示するために必要な追加の JS ロジックを呼び出すための正しい構文。
ありがとう!