特定の座標境界を使用して、RからRgoogleMapsで地図を取得したいのですが。
私が呼ぶことができるのはGetMapで、中心を指定し、ズームレベルを追加する必要があります。選択した座標で囲まれたイメージマップが取得されないことを除いて、すべてが正常に機能します。
次に例を示します。
lat <- c(44.49,44.5)
lon <- c(11.33,11.36)
center = c(mean(lat), mean(lon))
zoom <- 14
mmap <- GetMap(center = center, zoom=zoom, maptype= "satellite", destfile = "m.png")
問題は、中心のみがパラメーターとして渡されるため、表示される画像全体がズームレベルに依存することです。だから、私は私が得るイメージの境界が何であるか本当に理解できません。私がやりたいことは、定義している座標に正確にバインドされた画像を取得することです。これは可能ですか(他のマップパッケージでも可能ですか)?
これが1つの方法です。まず、特定のズームで地図を取得します。次に、図を描くときに経度と緯度の制限を追加します。これは、scale_x_continuous
とscale_y_continuous
で実行できます。
library(ggmap)
library(ggplot2)
### Set a range
lat <- c(44.49, 44.5)
lon <- c(11.33, 11.36)
### Get a map
map <- get_map(location = c(lon = mean(lon), lat = mean(lat)), zoom = 14,
maptype = "satellite", source = "google")
### When you draw a figure, you limit lon and lat.
foo <- ggmap(map)+
scale_x_continuous(limits = c(11.33, 11.36), expand = c(0, 0)) +
scale_y_continuous(limits = c(44.49, 44.5), expand = c(0, 0))
foo
別のオプションは、マップのソースとしてOpenStreetMapを使用することです。 ggmap
パッケージのget_map
関数を使用すると、OpenStreetMapをソースとして使用するときにマップの境界を指定できます。と:
mmap <- get_map(location = c(11.33,44.49,11.36,44.50), source = "osm")
ggmap(mmap)
あなたが得る:
ただし、このメソッドはGoogleMapsでは機能しません。 GoogleMapsをソースとして境界を指定すると、次の警告が表示されます。
警告:Googleにバウンディングボックスが指定されています-空間範囲は概算です。境界ボックスを中心/ズーム仕様に変換します。 (実験的)
OpenStreetMapを使用することの欠点は、衛星画像にアクセスできないことです。
この質問をもっと早く見たかったのですが。 RgoogleMapsパッケージは、マップを取得する2つの方法を提供します。GetMap(center、zoom)およびGetMap.bbox(lonR、latR)は、単に境界ボックスをパラメーターとして受け取ります。ズームレベルは自動的に計算されます。後者の機能はあなたが探しているものかもしれないと思います。マーカス