簡體   English   中英

在OpenLayers中使用Stamen圖塊通過HTTPS進行映射

[英]Using Stamen tiles in OpenLayers map over HTTPS

我在OpenLayers地圖中使用Stamen的“toner-lite”圖塊,如下所示:

var bkgLayer = new ol.layer.Tile({
    source: new ol.source.Stamen({
        layer: "toner-lite"
    })
});

var map = new ol.Map({
    controls: [zoomInCtrl, scaleLineCtrl, fullScreenCtrl],
    renderer: 'webgl',
    target: 'mapViewport'
});

map.addLayer(bkgLayer);

當網站在HTTP下運行時,一切正常。 但是,如果我在HTTPS下運行該站點,則會嘗試從URL(例如)中檢索切片

https://c.tile.stamen.com/toner-lite/5/24/14.png

我在Stamen的網站上找到了以下信息

如果您想在需要HTTPS的網站上顯示這些地圖圖塊,請使用我們的圖塊SSL端點,將https://stamen-tiles.a.ssl.fastly.net替換為http://tile.stamen.com 也可以使用多個子域: https:// stamen-tiles- {S} .a.ssl.fastly.net

可以從https://stamen-maps.a.ssl.fastly.net/js/tile.stamen.js加載JavaScript。

事實上,如果我嘗試一個URL,如

https://stamen-tiles.a.ssl.fastly.net/toner-lite/5/24/14.png

在瀏覽器中,成功檢索到磁貼。 但是,如何更改我的JavaScript代碼,以便OpenLayers在檢索Stamen tile時使用此端點?

docs ,使用url參數。

可以在源代碼中找到默認值,應相應地格式化自定義值。

var url = goog.isDef(options.url) ? options.url :
    protocol + '//{a-d}.tile.stamen.com/' + options.layer + '/{z}/{x}/{y}.' +
    layerConfig.extension;

這應該適合你:

new ol.source.Stamen({
    layer: "toner-lite",
    url: "https://stamen-tiles-{a-d}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png"
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM