2017-10-21 110 views
0

我使用R中的leaflet包生成了一張地圖。一切正常,我可以將貼圖發佈到我的網站。然而,我的網站使用SSL,當地圖加載時,我得到混合內容通知,因爲CartonDB.Positron通過http加載。使用小冊子在ssl中載入供應商瓷磚R

混合內容:在該頁面的「https:// mywebsite.com」裝載了HTTPS,但要求一個不安全的形象「http://b.basemaps.cartocdn.com/light_all/12/1171/1566.png在Chrome中 - 特別是,我得到的這條消息「控制檯開發者工具」 」。此內容也應通過HTTPS提供。

有沒有一種方法可以在R中通過SSL在Leaflet中加載提供者切片?

例如,我可以在addProviderTiles中指定從SSL加載嗎?現在我只有addProviderTiles("CartoDB.Positron")

回答

0

他們已將http協議硬編碼到URL中,因此不能使用Carto提供程序。 https://github.com/rstudio/leaflet/issues/472

暫且可以使用自定義模板:

addTiles(
    urlTemplate = "https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png", 
    attribution = '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>, | &copy; <a href="https://carto.com/attribution">Carto</a>', 
    options = tileOptions(minZoom = 0, maxZoom = 18) 
) 

來自我在他們的跟蹤器提出的問題https://rpubs.com/walkerke/custom_tiles

聲明,我無法測試功能以上呼籲,因爲我目前沒有在我的系統上安裝RStudio,但據我所知,它應該工作。

+0

我同意這應該工作,但事實並非如此。問題是'urlTemplate =「https'中的」s「,如果你使用」s「運行上面的代碼,數據點會被繪製出來,但背景圖像是純灰色的,如果你刪除了」s「 「http」,地圖加載併成爲背景圖像,似乎調用「https」是問題,不幸的是,'addTiles'選項似乎不是一種可行的解決方法。 – scottsmith

1

修復@iH8建議的作品。這是我相應的R代碼。

m <- leaflet() %>% addTiles('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', 
    attribution = paste(
     '&copy; <a href="https://openstreetmap.org">OpenStreetMap</a> contributors', 
     '&copy; <a href="https://cartodb.com/attributions">CartoDB</a>' 
    )) 

卡託建議網址(1)

https://cartodb-basemaps-{s}.global.ssl.fastly.net/{style}/{z}/{x}/{y}.png

但只是添加https://開頭到正常的URL也有效。

相關問題