1

私はここが初めてで、R の Leaflet マップで Google Maps API を使用して Google マップのベース レイヤーを呼び出す方法を理解するのに助けが必要でした。これまでに学んだことは次のとおりです。

  1. Pavel Shramov の Leaflet プラグインを使用すると、Google のベース マップを Leaflet JS 内から呼び出すことができます。これは、私が理解している方法では、Google の ToS に準拠しています。この例は、ここで入手できます。これは非常にうまく機能します。
  2. 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 ロジックを呼び出すための正しい構文。

ありがとう!

4

0 に答える 0