2017-03-13 8 views
2

ローカルに保存されたマップタイルを使用しているリーフレットマップが正しく機能しない理由を理解するのに役立つ必要があります。私はhereからの例を作り直して、ローカルに保存されたマップタイルに基づいてリーフレットマップを作成しようとしています。しかし、私はそれを作成すると、バックグラウンドマップのタイルは読み込まれません。Rリーフレットオフラインマップタイルがロードされていません

私が持っているコードは基本的にまっすぐですが、私のディレクトリのために更新され、私のローカルサーバを起動するように更新されています。私はサーバーを間違って起動しようとしているかどうかはわかりません。 servrを使用してローカルサーバーを起動する方法については、hereも参照してください。

library(RgoogleMaps) 
for (zoom in 10:16) 
GetMapTiles("Washington Square Park;NY", zoom = zoom, 
      nTiles = round(c(20,20)/(17-zoom))) 

library(leaflet) 
setwd("C:/Users/OTAD USER/Documents") 
system("Rscript -e 'servr::httd()' -p8000") 
m = leaflet() %>% 
    addTiles(urlTemplate = "http:/localhost:8000/mapTiles/OSM/{z}_{x}_{y}.png") 
m = m %>% setView(-73.99733, 40.73082 , zoom = 13) 
m = m %>% addMarkers(-73.99733, 40.73082) 
m 

答えて

4

あなたはほとんどいました。あなたはservr::httd(port = 8000, daemon = TRUE)で、daemonモードでサーバーを実行することができます:

# Set the working folder 
setwd("C:/Users/OTAD USER/Documents") 

# Load the tiles in working_folder/mapTiles/OSM/ 
library(RgoogleMaps) 
for (zoom in 10:16) 
    GetMapTiles("Washington Square Park;NY", zoom = zoom, 
       nTiles = round(c(20,20)/(17-zoom))) 

# Start serving working folder on port 8000 in demon mode 
deamon_id <- servr::httd(port = 8000, daemon = TRUE) 

# Plot with leaflet 
library(leaflet) 
m = leaflet() %>% 
    addTiles(urlTemplate = "http:/localhost:8000/mapTiles/OSM/{z}_{x}_{y}.png") 
m = m %>% leaflet::setView(-73.99733, 40.73082 , zoom = 16) 
m = m %>% leaflet::addMarkers(-73.99733, 40.73082) 
m 

# Stop serving 
servr::daemon_stop(deamon_id) 
+0

感謝を!これは、インタラクティブなRセッションでタイルをロードするのに必要なものです。 Shiny内のローカルタイルをロードする際の私の[その他の質問](https://stackoverflow.com/questions/43046753/r-leaflet-offline-tiles-within-shiny?noredirect=1&lq=1)への回答も。 – Jake

関連する問題